uniapp安卓判断通知权限(并通过版本进行设置跳转)

var main = plus.android.runtimeMainActivity();
var pkName = main.getPackageName();
var uid = main.getApplicationInfo().plusGetAttribute("uid");
var NotificationManagerCompat = plus.android.importClass("android.support.v4.app.NotificationManagerCompat");
var areNotificationsEnabled = NotificationManagerCompat.from(main).areNotificationsEnabled();
// 未开通‘允许通知’权限,则弹窗提醒开通,并点击确认后,跳转到系统设置页面进行设置  
if (!areNotificationsEnabled) {
  uni.showModal({
    title: '提示',  
    content: '请先打开APP通知权限',  
    showCancel: false,  
    success: function (res) {  
      if (res.confirm) {  
        var Intent = plus.android.importClass('android.content.Intent');
        var Build = plus.android.importClass("android.os.Build");
        //android 8.0引导  
        if (Build.VERSION.SDK_INT >= 26) {
          var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS');
          intent.putExtra('android.provider.extra.APP_PACKAGE', pkName);
        } else if (Build.VERSION.SDK_INT >= 21) { //android 5.0-7.0  
          var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS');
          intent.putExtra("app_package", pkName);
          intent.putExtra("app_uid", uid);
        } else { //(<21)其他--跳转到该应用管理的详情页
          var Settings = plus.android.importClass("android.provider.Settings");
          var Uri = plus.android.importClass("android.net.Uri");
          var intent = new Intent();
          intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
          var uri = Uri.fromParts("package", main.getPackageName(), null);
          intent.setData(uri);
        }
        // 跳转到该应用的系统通知设置页  
        main.startActivity(intent); 
      }  
    }
  });
}

 

posted @ 2020-03-17 14:49  Stalker丶  阅读(4428)  评论(4编辑  收藏  举报