美文网首页iOS开发面试
iOS 极光推送的项目集成

iOS 极光推送的项目集成

作者: pythonboy | 来源:发表于2015-12-04 09:38 被阅读375次

    激光推送已经做得比较完善了。参考集成文档就可以解决掉大部分问题。

    1,证书问题,certificates,这里要区分两个概念,开发证书与推送证书。这是两个证书,刚开始混淆了,以为开发证书要有推送功能呢。

    开发证书选择的生成的时候,是选择App Developer那个选项,这个是用来进行对我们的App签名的。

    2,推送证书,这个单单是用来生成p12文件的,生成的时候选择push功能,然后下载下来双击,有可能没有安装在登录证书下,手动拖过去即可,要不然,导出证书不是p12文件。

    3,将p12上传至极光推送平台。

    4,配置好项目中pushconfig.plist文件。参考文档

    5,实现相关的推送代码。参考项目文档。

    至此推送工作已经准备完成,如果你人品足够好的话,估计就可以推一条试试了。

    需要注意的几点:

    1,极光的相关项目代码中实现的,只是后台的推送提醒。如果你觉得配置没问题,但是死活收不到,把程序退到后台试一下,或许就会收到了哈。

    2,无论前台还是后台,推送都会走一个统一的方法。- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo fetchCompletionHandler:(void(^)(UIBackgroundFetchResult))completionHandler

    我们可以在这个方法里,进行一些处理。比如获取到推送的内容

    NSString*content = [[userInfoobjectForKey:@"aps"]objectForKey:@"alert"];

    3,判断程序前后台问题:

    - (void)applicationDidBecomeActive:(UIApplication*)application 程序进入前台会走的方法。可以用BOOL来标记一下。

    4,判断程序是从图标点击启动还是从推送通知点击启动

    在这个方法里 - (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions 

    //如果是从点击通知启动的应用,就获取通知的内容

    NSDictionary* remoteNotification = [launchOptionsobjectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

    if(remoteNotification) {

    //说明从推送通知点击启动的

    }

    5,关于推送跳转的问题。

    项目的主架构是,rootViewController是TabbarController,然后TabbarController的对应着几个NavigationController。

    我们可以获取navigationController.rootViewController

    相关文章

      网友评论

        本文标题:iOS 极光推送的项目集成

        本文链接:https://www.haomeiwen.com/subject/gqdpxttx.html