检测应用程序是否从推送通知启动/打开,然后将其重定向到特定视图控制器

时间:2015-01-30 07:58:32

标签: ios objective-c ios7 notifications push-notification

我正在做的是当收到推送通知时,我正在导航到特定的视图控制器,具体取决于我从该通知获得的用户信息。从方法

接收此导航和用户信息
didReceiveRemoteNotification

当应用处于后台并收到通知时,此功能非常正常。 但是当我的应用程序被强制停止时,我收到通知,然后点击我的应用程序第一次启动,因此didReceiveRemoteNotification方法没有被调用,我无法将我的应用程序重定向到特定的视图控制器。它只是打开我的应用程序的第一页。 如何检测我的应用程序是否从推送通知启动并从{{​​1}}得到的通知获取信息,现在我需要将其重定向到特定页面?我的应用程序支持来自iOS 7及更高版本。 怎么了这种类型的Senario,但无法弄清楚如何做到这一点。

1 个答案:

答案 0 :(得分:1)

你可以从 didFinishLaunchwithOptions :( lauchoptions)方法中检测出notificatin。 在这种方法中,使用lauchoptions来读取通知字典 ` if(launchOptions){// launchOptions不是nil

    userInfo = [launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
    apsInfo = [userInfo objectForKey:@"aps"];

}`

然后根据通知密钥设置window.rootviewcontroller。