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); 
      }  
    }
  });
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM