以编程方式了解应用程序是不是可以接收推送通知

Posted

技术标签:

【中文标题】以编程方式了解应用程序是不是可以接收推送通知【英文标题】:Knowing programmatically if an app can receive push notifications以编程方式了解应用程序是否可以接收推送通知 【发布时间】:2013-01-23 17:38:13 【问题描述】:

有没有办法让应用程序以编程方式知道它是否可以接收推送通知?

【问题讨论】:

【参考方案1】:

最初您需要尝试注册接收推送通知。

[[UIApplication sharedApplication]registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert)];

如果有可能你会收到成功的委托方法

- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devTokenLocal 

如果你不可能收到失败委托方法。请注意,您可以分析错误消息以获取更具体的信息

-(void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error

【讨论】:

经过几次测试后,我发现这不包括以下情况:1)应用程序运行并且用户为其启用了推送通知。 2)用户将应用程序置于后台。 3) 用户更改设备设置,关闭应用程序的通知。 4)应用程序再次运行。现在该应用程序仍然认为它可以接收通知。有没有办法在运行时检查?【参考方案2】:

你可以使用

[[UIApplication sharedApplication] isRegisteredForRemoteNotifications]

【讨论】:

以上是关于以编程方式了解应用程序是不是可以接收推送通知的主要内容,如果未能解决你的问题,请参考以下文章

Android - 接收推送通知并显示它 - 不太了解

Win32/64 应用程序是不是可以从 Firebase 接收推送通知消息?

如何在 UserDefault 中存储推送通知警报消息?

我的 iPhone 应用程序可以注册以接收用于其他应用程序的推送通知吗?

iOS Swift 从推送通知以编程方式导航到某些 ViewController

Ionic 可以在没有推送服务的情况下接收推送通知吗?