极光推送流程
1.创建项目, 配置cocoapods;极光官网不支持Cocoapods, 这里仅是网友自己上传的, 建议跳过该步骤.
$ pod search JPushSDK
2.注册极光账号
3.创建应用, 按照要求填写iOS相关要求, 之前文章中下载的p12证书派上用场了.
如果没有创建参考iOS网络推送前期配置
之后在代码中需要使用该key
4.极光SDK概述, 之前已经使用系统推送, 可以大致的浏览一下这个流程;
5.配置依赖库, 下载SDK
第一. 前期配置
1. lib子文件夹(包含JPUSHService.h、jpush-ios-x.x.x.a)添加到你的工程目录中。2. 必要的框架
CFNetwork.framework
CoreFoundation.framework
CoreTelephony.framework
SystemConfiguration.framework
CoreGraphics.framework
Foundation.framework
UIKit.framework
Security.framework
Xcode7添加libz.tbd;
Xcode7以下添加libz.dylib
2.创建plist文件--PushConfig.plist ====(可选)
1. CHANNEL: 指明应用程序包的下载渠道,为方便分渠道统计,具体值由你自行定
义,如:App Store。
2. APP_KEY: 创建应用后自动生成的AppKey值。
3. APS_FOR_PRODUCTION: 0 (默认值)表示采用的是开发证书,1 表示采用生产
证书发布应用。
第二. 调用极光推送代码
1.注册极光
#import "AppDelegate.h"
#import "JPUSHService.h"
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0)
{ //可以添加自定义categories [JPUSHService
registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge |
UIUserNotificationTypeSound | UIUserNotificationTypeAlert) categories:nil];
}
else
{ //categories 必须为nil
[JPUSHService registerForRemoteNotificationTypes:
(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound |
UIRemoteNotificationTypeAlert) categories:nil];
} /*! * @abstract 启动SDK *
* @param launchingOption 启动参数. * @param appKey 一个JPush 应用必须
的,唯一的标识. 请参考 JPush 相关说明文档来获取这个标识. * @param channel
发布渠道. 可选. * @param isProduction 是否生产环境. 如果为开发状态,设置为
NO; 如果为生产状态,应改为 YES. * @param advertisingIdentifier 广告标识符
(IDFA) 如果不需要使用IDFA,传nil. * * @discussion 提供SDK启动必须的参
数, 来启动 SDK. * 此接口必须在 App 启动时调用, 否则 JPush SDK 将无法正常工
作. */
[JPUSHService setupWithOption:launchOptions
appKey:@"1ff9db3a7370c83a77f66cb0" channel:@"Test"
apsForProduction:NO advertisingIdentifier:nil]; return YES;
}
2.注册DeviceToken
- (void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{ /// Required - 注册 DeviceToken
[JPUSHService registerDeviceToken:deviceToken];
}
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo {
// Required,For systems with less than or equal to iOS6 //处理收到的 APNs 消息
[JPUSHService handleRemoteNotification:userInfo];
}
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
// IOS 7 Support Required
[JPUSHService handleRemoteNotification:userInfo];
completionHandler(UIBackgroundFetchResultNewData);
}
- (void)application:(UIApplication *)application
didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{ //Optional
NSLog(@"did Fail To Register For Remote Notifications With Error: %@", error);
}
发送推送消息
*** 恭喜你, 极光远程推送基本使用已经完成.***