方法
此方法引用了vant的showDialog
* 检测app 是否具有通知权限
*/
export function enablPermission() {
// #ifdef APP-PLUS
let main = plus.android.runtimeMainActivity();
let pkName = main.getPackageName();
let uid = main.getApplicationInfo().plusGetAttribute("uid");
let NotificationManagerCompat = plus.android.importClass(
"androidx.core.app.NotificationManagerCompat"
);
let areNotificationsEnabled =
NotificationManagerCompat.from(main).areNotificationsEnabled();
// 未开通‘允许通知'权限,则弹窗提醒开通,并点击确认后,跳转到系统设置页面进行设置
if (!areNotificationsEnabled) {
showDialog({
title: "通知权限开启提醒",
message: "您还没有开启通知权限,无法接受到消息通知,请前往设置!",
}).then(() => {
let Intent = plus.android.importClass("android.content.Intent");
let Build = plus.android.importClass("android.os.Build");
let intent = new Intent("android.settings.APP_NOTIFICATION_SETTINGS");
//android 8.0引导
if (Build.VERSION.SDK_INT >= 26) {
intent.putExtra("android.provider.extra.APP_PACKAGE", pkName);
} else if (Build.VERSION.SDK_INT >= 21) {
//android 5.0-7.0
intent.putExtra("app_package", pkName);
intent.putExtra("app_uid", uid);
} else {
//(<21)其他--跳转到该应用管理的详情页
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
let uri = Uri.fromParts("package", mainActivity.getPackageName(), null);
intent.setData(uri);
}
// 跳转到该应用的系统通知设置页
main.startActivity(intent);
});
}
// #endif
};
使用
执行时,会判断当前app是否具有通知的权限
如果没有权限会弹窗提示,用户点击后则会跳转到手机通知权限配置页面
document.addEventListener(
"plusready",
() => {
enablPermission();
},
false
);