Cordova Push Plugin,检测是否开启推送

Cordova PushPlugin, detect if Pushs are enabled

我使用 Ionic 和 Cordova 创建了一个移动应用程序。

但是,我在使用 cordova PushPlugin 时遇到问题

当我在应用程序设置中手动停用我的 Iphone 4s (ios 8.4) 上的 Push 时,PushPlugin 注册功能什么都不做(没有成功,没有错误,什么也没有 ^^) 当我手动重新激活插件时,该插件运行良好

我阅读了很多关于 IOS8 问题的答案: How to update code using enabledRemoteNotificationTypes because it is "not supported in iOS 8"?

我尝试了来自社区的 3/4 回购以及 Telerik 插件。但同样的问题,当未启用推送时没有任何反应。

我想要什么:

就像 Objective C 是一种我完全不知道的语言,任何帮助将不胜感激

谢谢

您可以在 applicationDidBecomeActive(在您的 appDelegate.m)上查看当前推送状态

- (void)applicationDidBecomeActive:(UIApplication *)application
{

        if ([[UIApplication sharedApplication]  respondsToSelector:@selector(isRegisteredForRemoteNotifications)]) {
            if ([[UIApplication sharedApplication]  isRegisteredForRemoteNotifications]){
                NSLog(@"iOS 8, notifications enabled");
            } else {
                NSLog(@"iOS 8, notifications not enabled");
            }
        } else {
            UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
            if (types & UIRemoteNotificationTypeAlert)
            {
                NSLog(@"Notifications Enabled");
            }
            else
            {
                NSLog(@"Notifications not enabled");
            }
        }

}

您也可以将该代码放入插件中并监听 applicationDidBecomeActive 通知

无论如何,你应该在你尝试过的插件上打开问题,他们应该在推送未启用的情况下调用失败回调