通过单击应用程序图标直接启动应用程序时,无法获取通知数据

Ans*_*eed 9 objective-c apple-push-notifications ios appdelegate

我有一个场景,其中应用程序将获得推送通知,并需要在我的应用程序的主屏幕中显示消息,因为我将消息数组保存到我的应用程序委托的用户默认值,一切正常,但在以下条件下它不起作用

  1. 如果应用程序处于被杀死状态并且发出通知并且用户通过应用程序图标触发应用程序(而不是来自推送通知)

  2. 如果应用程序在后台并且通知来了,用户也通过应用程序图标(不是来自推送消息)进入应用程序

然后我搜索了解决方案,并了解了静音推送通知(用于后台模式),没有别的,所以我需要知道如何通过推送通知处理所有场景,我的appdelegete是

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

NSDictionary *remoteNotif = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey];


    if (remoteNotif) {

        [self handlePushMessage:remoteNotif];
    }
    return YES;
}

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{

    [self handlePushMessage:userInfo];

}

-(void)handlePushMessage :(NSDictionary*)userInfo{

   //method to handle push message
}
Run Code Online (Sandbox Code Playgroud)

提前致谢

til*_*ilo 2

这是一个常见的问题:如果用户没有通过显示的通知打开您的应用程序,则无法获取相关信息。

* 许多应用程序采用的一个可能的解决方案是检查远程服务器是否有未读通知(例如检查未设置的读取日期字段)。