iOS推送通知重定向到应用程序变为活动状态时查看

时间:2012-10-23 10:16:12

标签: ios ios5 apple-push-notifications

一旦用户从通知中心打开应用程序,考虑到应用程序刚刚在操作之前启动,是否有任何方法可以重定向到View。 (应用程序仍在后台运行)

例如,我正常启动应用程序,按主页按钮。然后我收到了一些远程通知,然后我从那个推送通知中打开了应用程序。

因为我有不同的推送通知,可以重定向到我的应用程序的任何部分。我希望重定向不仅可以在

中使用
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

在应用程序变为活动状态期间,我是否仍然可以访问远程通知(json数据)?这样我就可以做一些重定向。此外,用户可以直接浏览他在中心的远程通知,并根据用户点击的通知重定向到正确的视图。

更新

另一个例子:
(1)用户在application: didReceiveRemoteNotification:中收到2个推送通知
(2)用户通过第一次推送通知重定向。
(3)用户进入他的通知中心
(4) )点击其他通知。他还会被重定向吗?我不认为该应用不会进入application:didReceiveRemoteNotification:application: didFinishLaunchingWithOptions:

3 个答案:

答案 0 :(得分:4)

有与DIDReceiveRemoteNotification方法相关联的用户信息...您可以在委托方法之后使用它。

- (BOOL)application:(UIApplication *)app didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    NSDictionary* userInfo =
        [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
    if (userInfo) {
        [self processRemoteNotification:userInfo];
    }
    [window addSubview:viewController.view];
    [window makeKeyAndVisible];
    return YES;
}

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
    [self processRemoteNotification:userInfo];
}

之后在用户信息中有一个名为APS的密钥,您可以使用以下方法。

NSDictionary *apsInfo = [userInfo objectForKey:@"aps"];

之后,您可以从APNS的工资负荷中获取每个元素,并决定重定向到哪个视图。

答案 1 :(得分:4)

是的,你可以,这是一个简单的大纲/样本

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
 {
      //When notification is pressed on background it will enter here

      //Get strings based on information on your json payload for example
      if([[userInfo objectForKey:@"keyword"] isEqualToString:@"value"]){
           //redirect/push a screen here for example
      }
 }

答案 2 :(得分:1)

是的,你可以。

收到远程通知后,将调用以下委托方法。

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