CLP
CLP
  • 发布:2019-03-22 20:10
  • 更新:2021-11-23 18:17
  • 阅读:13262

判断iOS系统推送功能是否开启,并可提醒去设置页打开设置推送

分类:5+ SDK

如果需要判断ios系统推送功能是否开启,并提醒去设置页打开设置推送,可以用以下nativeJS 代码:

function isOpenPush() {  
                var UIApplication = plus.ios.import("UIApplication");  
                var app = UIApplication.sharedApplication();  
                var enabledTypes = 0;  
                if (app.currentUserNotificationSettings) {  
                    var settings = app.currentUserNotificationSettings();  
                    enabledTypes = settings.plusGetAttribute("types");  
                    console.log("enabledTypes1:" + enabledTypes);  
                    if (enabledTypes == 0) {  
                        plus.nativeUI.confirm("推送设置没有开启,是否去开启?", function(e) {  
                            if (e.index == 0) {  
                                var NSURL2 = plus.ios.import("NSURL");  
                                var setting2 = NSURL2.URLWithString("app-settings:");  
                                var application2 = UIApplication.sharedApplication();  
                                application2.openURL(setting2);  
                                plus.ios.deleteObject(setting2);  
                                plus.ios.deleteObject(NSURL2);  
                                plus.ios.deleteObject(application2);  
                            }  
                        }, {  
                            "buttons": ["Yes", "No"],  
                            "verticalAlign": "center"  
                        });  
                    }  
                    plus.ios.deleteObject(settings);  
                } else {  
                    enabledTypes = app.enabledRemoteNotificationTypes();  
                    if(enabledTypes == 0){  
                        console.log("推送未开启!");  
                    }else{  
                        console.log("已经开启推送功能!")  
                    }  
                    console.log("enabledTypes2:" + enabledTypes);  
                }  
                plus.ios.deleteObject(app);  
            }

此功能在uniapp项目且配置为自定义模式的时候,会报:“plus.ios.import is not a function”错误。
该问题已经在HBuilderX1.9.4.20190426 之后版本已经解决

1 关注 分享
今天回复我了吗

要回复文章请先登录注册

CLP

CLP (作者)

回复 GUNDAM :
iOS 已经修复了
2019-04-29 13:41
GUNDAM

GUNDAM

回复 CLP :
2019-04-29 13:37
CLP

CLP (作者)

回复 GUNDAM :
bug 复现了,正在解决
2019-04-29 13:33
GUNDAM

GUNDAM

回复 CLP :
还有希望提高下安卓的检查是否开启通知的方法
2019-04-29 10:53
GUNDAM

GUNDAM

回复 CLP :
都好几个人遇到同样问题啦?估计你们这个不支持页面调用外部js方法 外部js方法中用了导包等操作 然后报错 不知道这是不是你们没有复现的原因
2019-04-29 10:52
GUNDAM

GUNDAM

请问这个问题会解决吗?
2019-04-28 18:56
GUNDAM

GUNDAM

回复 CLP :
出现这个native.js需要导包的方法都不能调用
2019-04-28 15:01
GUNDAM

GUNDAM

回复 CLP :
是最新的自定义组件模式
2019-04-28 15:01
CLP

CLP (作者)

回复 GUNDAM :
是自定义组件模式吗,非自定义组件模式,也会有这个报错吗
2019-04-28 14:54
GUNDAM

GUNDAM

回复 CLP :
报同样问题 uniapp导包报plus.ios.import is not a function
2019-04-28 14:35