-
(BOOL)application:(UIApplication
*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{<br><br> if(launchOptions)<br><br>
{<br><br>
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];<br><br>
NSDictionary *userInfo = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey];<br><br>
[self presentViewControllerWithUserInfo:userInfo];<br><br>
}<br><br>}<br><br><br><br>//App状态为正在前台或者后台运行,那么此函数将被调用<br><br>-
(void)application:(UIApplication
*)application didReceiveRemoteNotification:(NSDictionary *)userInfo<br><br>{<br><br> <br><br> if(application.applicationState
!= UIApplicationStateActive)<br><br>
{<br><br><br><br>
[self presentViewControllerWithUserInfo:userInfo];<br><br> <br><br>
}<br><br>}<br><br><br><br>#pragma
mark - 消息跳转页面<br><br>-
(void)presentViewControllerWithUserInfo:(NSDictionary
*)userInfo<br><br>{<br><br> //拿出你的消息内容,跳转即可~~<br><br>[self.window.rootViewController
presentViewController:fyfNavCtrl animated:YES completion:^{<br><br> //<br><br>
}];<br><br>} |
第一种,如果程序是打开的,但是在后台,这个时候收到推送信息,可以进入指定页面- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 方法可以做到
程序完全没有启动的时候,是不会调用第一种那个方法的
第二种-
(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 这个函数在你正常启动下 launchOptions 是空,如果你是从点击推送通知过来的,那么 laungchOptions里面会包含你的推送的内容。在这里就可以进行相应的处理
推送消息可以带自定义字段,
如message:”/product/detail”
程序在收到推送消息时,读取消息该字段,就可以直接跳转了!
本文介绍iOS应用中如何处理不同状态下的推送消息,并实现特定页面的跳转。包括应用在后台时接收推送及从推送通知启动应用两种场景的具体实现。
255

被折叠的 条评论
为什么被折叠?



