9***@qq.com
9***@qq.com
  • 发布:2019-01-20 18:10
  • 更新:2024-09-20 08:48
  • 阅读:17312

h5+安卓判断通知权限,打开通知权限

分类:uni-app

以下是uniapp代码
1、安卓代码

var main = plus.android.runtimeMainActivity();  
var pkName = main.getPackageName();  
var NotificationManagerCompat = plus.android.importClass("android.support.v4.app.NotificationManagerCompat");  
var packageNames = NotificationManagerCompat.from(main);  
console.log(JSON.stringify(packageNames));  
if (packageNames.areNotificationsEnabled()) {  
    console.log('已开启通知权限');  
}else{  
    uni.showModal({  
        title: '提示',  
        content: '请先打开APP通知权限',  
        showCancel: false,  
        success: function (res) {  
            if (res.confirm) {  
                var Intent = plus.android.importClass('android.content.Intent');  
                var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS');//可设置表中所有Action字段  
                intent.putExtra('android.provider.extra.APP_PACKAGE', pkName);  
                main.startActivity(intent);  
            }  
        }  
    });  
}

2、苹果代码

var UIApplication = plus.ios.import("UIApplication");  
var app = UIApplication.sharedApplication();  
var enabledTypes  = 0;  
if (app.currentUserNotificationSettings) {  
    var settings = app.currentUserNotificationSettings();  
    enabledTypes = settings.plusGetAttribute("types");  
} else {  
    //针对低版本ios系统  
    enabledTypes = app.enabledRemoteNotificationTypes();  
}  
plus.ios.deleteObject(app);  
if ( 0 == enabledTypes ) {  
    uni.showModal({  
        title: '提示',  
        content: '请先打开APP通知权限',  
        showCancel: false,  
        success: function (res) {  
            if (res.confirm) {  
                var UIApplication = plus.ios.import("UIApplication");  
                var NSURL = plus.ios.import("NSURL");  
                var setting = NSURL.URLWithString("app-settings:");  
                var application = UIApplication.sharedApplication();  
                application.openURL(setting);  
                plus.ios.deleteObject(setting);  
                plus.ios.deleteObject(application);  
            }  
        }  
    });  
}  
9 关注 分享
SimpleJalon mengxinxuexi chenguokai 1***@qq.com 3***@qq.com 3***@qq.com 3***@qq.com 粉末的沉淀 六七四十二

要回复文章请先登录注册

Hi校园

Hi校园

回复 LRL啊 :
对 你怎么解决的
2021-09-08 10:18
LRL啊

LRL啊

报错
```
var NotificationManagerCompat = plus.android.importClass("android.support.v4.app.NotificationManagerCompat");
var packageNames = NotificationManagerCompat.from(main);
// "TypeError: Cannot read property 'from' of null"

```
2021-09-02 11:22
胡萝卜猫

胡萝卜猫

回复 9***@qq.com :
请问安卓几以下就不能用?
2020-01-05 00:12
h***@vip.qq.com

h***@vip.qq.com

你好,uniapp离线打包(精打包), Xcode编译后,跳出提醒框说缺少模块。请问是缺少什么模块?
2019-12-04 18:27
4***@qq.com

4***@qq.com

mark
2019-09-12 14:17
9***@qq.com

9***@qq.com (作者)

回复 9***@qq.com :
低版本的安卓无法解决
2019-08-29 18:37
9***@qq.com

9***@qq.com (作者)

回复 zhongli :
该代码安卓兼容性不是很好,我也在想办法
2019-08-29 18:37
zhongli

zhongli

您好,请问提示:在已安装应用的列表中找不到该应用,该如何解决这个问题呢???请作者指点一二,谢谢。
2019-08-28 19:09
chenguokai

chenguokai

回复 chenguokai :
ios的;找了好久了,终于出来了
2019-08-07 15:43
chenguokai

chenguokai

安卓6的判断要加一个呀,不然只能新版的可以
2019-07-30 14:58