- (
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”
程序在收到推送消息时,读取消息该字段,就可以直接跳转了!