iOS极光推送 点击推送进入指定页面问题

当我们集成推送时 难免会遇到这个问题 如何在点击推送时进入指定的页面 在我做推送的时候自然而然还是觉得只要集成推送 跳转是必须做的

首先 , 当应用没有启动时

应用没有启动时, 收到推送, 当点击推送时,就就会触发这个方法

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions launchOptions

//声明一个字典
NSDictionary* remoteNotification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];


如果remoteNotification不为空,则说明用户通过推送消息进入,那么便可以做你想要的操作了

其次 , 当应用已经启动时

根据JPush 文档我们就可以得出

当在前台时会调用

- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler

当应用处于后台状态时, 点击推送时会进入应用,将会重复调用此方法

那么重点来了 我们怎么判断应用是在收到推送时 进入应用的呢?

我们只需要将以下代码加入上面的方法就可以判断了

UIApplicationState state = [UIApplication sharedApplication].applicationState;
    if (state == UIApplicationStateInactive)
    {
         //在此处处理跳转页面
    }
    else
    {
        //在此处处理一般推送
    }

原因 : 当点击推送进入时 此时应用的状态还处于 UIApplicationStateInactive 状态

OK 处理参数 进入页面 , 在此我建议 这个页面的数据最好是只需要一个简单参数的页面
这样才更方便的处理参数

君子生非异也, 善假于物也

你可能感兴趣的:(iOS极光推送 点击推送进入指定页面问题)