gpt4 book ai didi

objective-c - 得到 PN 但是申请 :application didReceiveRemoteNotification: not triggered when app icon is selected

转载 作者:太空狗 更新时间:2023-10-30 03:29:31 24 4
gpt4 key购买 nike

我看到我的推送通知有一个奇怪的行为,想知道是否有人对我做错了什么或应该做什么有任何建议。

我的application:(UIApplication*)application didReceiveRemoteNotification:写成如下:

- (void)application:(UIApplication*)application didReceiveRemoteNotification: (NSDictionary*)userInfo
{
NSLog(@"Received notification: %@", userInfo);
[self addMessageFromRemoteNotification:userInfo updateUI:YES];
}

如您所见,我并不担心应用程序的状态。我只想在收到 PN 时记录一条消息。

我的设置是按照 Apple 的文档进行的,我可以接收推送通知。

以下是 PN 进入时的预期行为:

  • 应用程序在后台,我点击通知:我可以在通知中心看到通知。点击通知,应用程序来到前台,我可以看到上面的方法被调用了。
  • 应用处于事件状态并且已经在前台:我可以看到上面的方法被调用了。

现在,以下是我看到的特殊行为:

  • PN 进来了。在通知中看到它,在应用程序图标上看到徽章。我点击应用程序图标 - 而不是通知: 在这种情况下,我发现上述方法被调用。我期待它被称为...

有没有人见过这种行为?这是应该发生的事吗?我在 Apple 文档中看不到任何关于此的信息...此外,是否有解决此问题的方法?

最佳答案

如果应用程序不是在后台运行,而是最初从推送通知启动并且您已经实现了didFinishLaunchingWithOptions:,您需要在那里实现您的代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
if (launchOptions != nil) {
NSDictionary* userInfo = [launchOptions valueForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"];
if (userInfo != nil) {
NSDictionary* apsInfo = [userInfo objectForKey:@"aps"];
NSString* custom = [userInfo objectForKey:@"yourCustomPushData"];
// do something with it
}
}
//...
}

关于objective-c - 得到 PN 但是申请 :application didReceiveRemoteNotification: not triggered when app icon is selected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10628611/

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