• 0
  • 0

uniapp 下 原生检测 是否开启通知栏消息提醒,Android、iOS都支持

2019-07-07 2976 0 admin 所属分类:Hbuilder
/**
 * 检测通知栏
 */
checkNotification: function() {
    if (plus.os.name.toLowerCase() == 'ios') {
        this.checkIosNotification();
    } else {
        this.checkAndroidNotification();
    }
},
checkAndroidNotification: function() {
    var main = plus.android.runtimeMainActivity();
    var pkName = main.getPackageName();
    var NotificationManagerCompat = plus.android.importClass("android.support.v4.app.NotificationManagerCompat");
    var packageNames = NotificationManagerCompat.from(main);
    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);
                }
            }
        });
    }
},
checkIosNotification: function() {
    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);
                }
            }
        });
    }
}


返回顶部