Cordova:干净的方式检查用户是否启用了推送通知

时间:2016-03-22 18:03:04

标签: ios cordova push-notification

似乎可能有一个现有的cordova解决方案,但除了cordovaBadge插件我找不到它 - https://github.com/katzer/cordova-plugin-badge - http://ngcordova.com/docs/plugins/badge/

问题是由于与LocalNotifications的冲突,我不得不删除此插件。 (好像我不能同时拥有它们)

cordovaBadge有一个简单的.hasPermission()方法。在cordova库中还有什么可以做到的吗?

2 个答案:

答案 0 :(得分:5)

您可以使用http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#prepared-statementsisRemoteNotificationsEnabled()方法:

cordova.plugins.diagnostic.isRemoteNotificationsEnabled(function(isEnabled){
    console.log("Push notifications are " + (isEnabled ? "enabled" : "disabled"));
}, function(error){
    console.error("An error occurred: "+error);
});

答案 1 :(得分:0)

亲爱的@vargen_您是对的!

我正在将该插件与“ phonegap-plugin-push”一起使用-只是为了捕捉@md repo公开的一些新功能(请参阅推送操作...)。

诊断插件不允许知道是否请求了许可(例如,仅适用于iOS的“ cordova.plugins.diagnostic.getRemoteNotificationsAuthorizationStatus”方法的“ not_determined”响应)。

奇怪的是,首次安装该应用程序(Android)时,将推送权限设置为“ true”(即使未显示任何模式)-已在android 8.1.0上进行了测试。

相反,如果我们使用cordova.plugins.diagnostic.permissionStatus对象的'RECEIVE_WAP_PUSH'值,例如此处提供的示例,https://www.npmjs.com/package/cordova.plugins.diagnostic#requestruntimepermission权限似乎始终是'DENIED_ALWAYS'。

我对于如何管理适用于Android平台的该插件的“首次”使用情况感到非常困惑。