极光推送 根据服务器返回内容跳转指定页面

现在的很多应用当中会有消息推送的功能,本地推送就不多说了,大部分的时候都是远程服务器推送,而苹果自身的一套推送机制自己写起来会比较繁琐,大部分的时候会用到一些第三方的,比如 极光推送,友盟推送,百度推送等等,其实都大同小异.在公司项目中我集成的是极光推,就说说极光推送的那些事儿.

1. 集成. 在项目中集成极光推送,相对来说不复杂,文档很详尽,就不赘述 .稍微繁琐的可能就是证书的配置,详见 http://docs.jiguang.cn/client/ios_tutorials/.


2. 实际运用. 

        (1) 文档集成完毕之后,可以用 极光的服务器 进行推送测试,测试时有全推和个推.全推就是针对服务器中所有用户(在我们公司服务器中已注册的用户).个推就是针对于某一个用户(可利用设置别名)来推送消息.一般是利用注册用户的 userID 来作为标识在登陆的时候设置别名,在退出的时候清空别名.比如:

       /**alias  为 UserID */

        [JPUSHService setTags:nil  alias:alias   callbackSelector:@selector(tagsAliasCallback:tags:alias:)                   target:self];

       此方法可在项目中任意地方调用.

     (2) 别名设置成功, 一切准备就绪之后,就会出现一个问题了,就是我在接收到服务器推送过来的消息之后是需要做一些事情的,比如点击推送的消息跳转到某一个指定的界面,或根据服务器返回不同消息的类型而跳转到不同的界面,这里肯定就得做一个判断,该如何判断呢?目前暂且我们的 app 已经是在启动状态.(app 启动和没启动进入的方法会不同).
    

当我们接受到远程服务器的消息的时候回调用方法:

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

   

    if (application.applicationState == UIApplicationStateActive) { // 如果应用在前台的话

         1. 提出自己想要的视图..(自定义省略)     

         2. 点击跳转指定控制器(界面)  

           [self pushNotificationPageWithActive];

   }else{ // 应用在后台

        [self pushNotificationPage:userInfo];

    }


    [JPUSHService handleRemoteNotification:userInfo];

    completionHandler(UIBackgroundFetchResultNewData);

}

/** 应用如果在前台运行的话推送的消息默认状态下是没有显示的,所以需要在接收到远程消息推送服务的时候做一个判断,如果应用在前台的话(项目变态需求需要有类似通知栏的展示)模拟了一个类似通知栏的效果,现在审核中,目前还不知道这个会不会被拒哈*/

-(void)pushNotificationPage:(NSDictionary*)userInfo

{

    UITabBarController* tabBarVc=(UITabBarController*)[UIApplication sharedApplication

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值