gpt4 book ai didi

iphone - 当应用程序未运行时获取推送通知 iPhone

转载 作者:行者123 更新时间:2023-12-03 20:25:32 25 4
gpt4 key购买 nike

我正在开发一款涉及推送通知的 iPhone 应用程序。正如我在许多文档和教程中看到的那样,它建议在

中注册推送通知
application:(UIApplication *)application 
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

如下所示:

- (BOOL)application:(UIApplication *)application 
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert| UIRemoteNotificationTypeBadge| UIRemoteNotificationTypeSound];

...
}

现在的问题是,如果应用程序没有运行(即使在后台),当推送到来时,它无法处理推送消息,但是如果我再次从通知区域使用推送消息并再次启动应用程序,我可以收到我的消息。

我需要做什么才能让我的应用程序即使在第一次午餐时也能收到推送消息?

最佳答案

您可能会混淆注册和接收通知的概念。应用程序不可能在第一次调用 registerForRemoteNotificationTypes: 方法之前接收推送通知,因为此方法首先提供用于发送推送通知的推送 token 。

因此,您必须讨论在可以传递通知的两种不同情况下接收通知:初始应用启动时和程序执行期间。

为了处理第一种类型的通知,您必须检查发送到 application:didFinishLaunchingWithOptions:options 字典。以下代码演示如何将启动时收到的通知路由到应用程序已运行时推送通知到达时调用的委托(delegate)方法。

将其放入您的application:didFinishLaunchingWithOptions:覆盖中:

NSDictionary *pushNotificationPayload = [launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if(pushNotificationPayload) {
[self application:application didReceiveRemoteNotification:pushNotificationPayload];
}

关于iphone - 当应用程序未运行时获取推送通知 iPhone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9184309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com