iOS 极光推送

极光推送流程
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);
}

发送推送消息

登陆--极光应用管理

*** 恭喜你, 极光远程推送基本使用已经完成.***

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 极光推送和百度比起来较为简单,但是很有新手对于集成极光推送时配置证书比较晕头转向,也没有太小白的教程,所以写了这个...
    Roct阅读 4,911评论 1 17
  • 关于iOS中的推送, 我们使用最多的可能就是极光了, 关于极光推送, 这里不做过多的介绍, 可到其官网进行学习, ...
    流火绯瞳阅读 7,497评论 3 4
  • 好久没有发动态了,今天介绍一下极光推送,关于apple通知的一些原理,这里就不做细致的介绍了,想要了解内部推送的原...
    fulen阅读 17,678评论 54 83
  • 一直觉得生活就应该是自己想要的那样,可现在的我又是怎么样的呢?已经二十八,身边存款为零,难以想象的落魄。借钱给的彩...
    狸狸头阅读 877评论 0 0
  • 在开篇 分布式系统-0-知识架构 我们介绍了分布式系统的背景和需要解决的问题。其中提到分布式设计主要涉及通讯、容错...
    王谙然阅读 3,754评论 0 1