从主屏幕启动应用程序无法获得远程推送负载? 但是从通知中心启动工作
从主屏幕启动应用程序无法获得远程推送负载? 但是从通知中心启动工作。
起初,应用程序没有运行 。 收到远程推送通知后,用户不会立即启动带有通知的应用程序。 然后用户点击通知中心的通知启动应用程序,我可以从launchOptions
获取推送有效负载:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSDictionary* userInfo = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; if(userInfo) { //do some works with push payload. } }
但是如果用户通过从主屏幕点击app图标启动应用程序,我无法从launchOptions
获取推送有效负载,尽管application:didFinishLaunchingWithOptions:
被调用。
再次:
- 应用程序未运行。
- 收到推送通知后,用户无法启动应用程序。
- 稍后,从Notification Center启动应用程序并从launchOptions获取推送负载。
- 从主屏幕启动应用程序无法从launchOptions获取推送有效负载。
这是SDK中的错误吗? 如何通过从主屏幕启动应用程序来获得推送有效负载?
谢谢!
你不能。
您只能在从通知中心启动时获取有效负载,因为这意味着用户对该通知感兴趣。
例如,如果我在Tweetbot上收到回复并且我想看到它,我会点击通知,但如果我只想检查我的推文,我会正常打开应用程序。
如果有效负载具有用户必须接收的信息,则应用程序应与您的服务器联系并检索它。
是的,如果用户通过点击图标启动应用程序,则远程通知的有效负载将丢失。
它并不酷,但它是目前的工作方式。