检测安卓app 是否具有通知权限

方法

此方法引用了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
  );
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值