美文网首页
极光推送步骤

极光推送步骤

作者: 老夫撩发少年狂 | 来源:发表于2018-01-30 14:49 被阅读215次

    第一步 证书的问题,这里我就直接以开发证书为例,如果是生产证书,就直接自己再生成一个生产证书,搞成P12文件,提交到极光推送的控制台,需要注意的是,推送证书,开发证书,profile使用的证书必须一致.尽管在xcode8 模式下 ,xcode自身就有管理证书的功能了.但是这个测试和生产证书还是要自己去开发者中心生成导出的.

    第二步 导入sdk

    将下载的sdk拖入我们的工程,就两个东西,一个是APService.h,一个是libPushSDK-1.8.8.a。证书选择要正确,确保是我们前期工作中生成的证书!

    第三步 需要导入各种依赖库

    !!!特别注意:我们需要导入必须得库,不然会报错!
    必须依赖库:CoreGraphics.framework、CFNetwork.framework、CoreFoundation.framework、CoreTelephony.framework、SystemConfiguration.framework、Security.framework、libz.tbd、Foundation.framework、UIKit.framework
    运行后会弹框问我们是否接收推送,若无肯定是没有集成好!
    PS:如果使用cocoapods导入极光的话,这一步的操作可以忽略,cocoapods会自动关联依赖库,cocoapods的使用请见我的博客!极光推送的cocoapods语句为:pod “JPush”

    第四步 进入项目的appdelegate里面,首先导入头文件

    
    #import "AppDelegate.h"
    
    #import "APService.h"
    
    

    第五步 进行推送消息的注册 向服务器上报Device Token以及向服务器上报收到的消息

    
    - (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
    
    //进行推送消息的注册
        [APService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert) categories:nil];
        
        [APService setupWithOption:launchOptions];
        
        
        NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter];
        
        [defaultCenter addObserver:self
         
                         selector:@selector(networkDidLogin:)
         
                             name:kJPFNetworkDidLoginNotification
         
                           object:nil];
        
    return YES;
    
    }
    
    
    
    //极光推送required, 向服务器上报Device Token
    
    - (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken{
    
        [APService registerDeviceToken:deviceToken];
    
    }
    
    //收到推送信息,获取最新数据。
    
    - (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo {
    
       [self refreshServierDataAndUI];
    
        [APService handleRemoteNotification:userInfo];
    
    }
    
    //向服务器上报收到的消息
    
    - (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo fetchCompletionHandler:(void(^)(UIBackgroundFetchResult))completionHandler{
    
        if (application.applicationState == UIApplicationStateActive) {
    
            //程序当前正处于前台收到apns通知
    
            //从服务器获取最新的数据,存入数据库,更新本地界面同时更新服务器的状态为已经接收
    
            [self refreshServierDataAndUI];
    
        }
    
        //这个userInfo就是jpush推送来的消息内容
    
        [APService handleRemoteNotification:userInfo];
    
        completionHandler(UIBackgroundFetchResultNewData);
    
    }
    
    

    另外,在使用过程中也遇到一些问题 参见 ios 极光推送 RegistrationID为空的问题

    相关文章

      网友评论

          本文标题:极光推送步骤

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