极光推送步骤

第一步 证书的问题,这里我就直接以开发证书为例,如果是生产证书,就直接自己再生成一个生产证书,搞成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为空的问题

你可能感兴趣的:(极光推送步骤)