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