我的推送通知正常,但在我的应用中,推送通知带有两个不同的消息:一个是"任务已完成"第二个是"你有一条消息"。
现在当应用程序处于后台状态并且通知到达时,如何在点击应用程序图标时收到通知消息?
如果有人知道那么请帮助我。提前谢谢。
答案 0 :(得分:1)
对于iOS 7及更高版本,您可以使用:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
这将允许您在应用程序处于后台状态时进行快速处理。
答案 1 :(得分:1)
实际上,从iOS 7开始,你可以得到它。
您需要实施后台远程通知。
在info.plist文件中,您需要添加:
然后,在推送通知中,添加到有效负载'content-available': 1,
然后,在AppDelegate.m中实现(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
方法。
我已经在我的iPhone设备上测试了这个&有用! =)
祝你好运!答案 2 :(得分:0)
通知数据会在application:didReceiveRemoteNotification:
中传送到您的应用。如果您要在applicationDidBecomeActive:
中处理它,则应将其存储在application:didReceiveRemoteNotification:
中并在applicationDidBecomeActive.
中再次阅读
请查看此link
答案 3 :(得分:0)
收到推送通知后..当您点击应用程序图标时,将调用以下方法... UserInfo(Dictionary)是来自APNS的有效负载
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
{
NSLog(@"Message from APNS%@", userInfo);
NSLog(@"APS from APNS%@", userInfo[@"aps"]);
NSLog(@"ID from APNS%@", userInfo[@"id"]);
}
在上面的日志中,看到userInfo字典给出了什么,并尝试从中检索值..
如果应用处于前台模式,则会通过application:didReceiveRemoteNotification:
但如果应用程序未处于前台模式,则推送通知将传递到application:didFinishLaunchingWithOptions:
希望它对你有所帮助......