本文为大家介绍快速集成极光推送
大家都知道我们在项目中进行的推送一般都是走第三方的,目前用的比较多的是极光,信鸽等。基本原理大多类似,今天为大家介绍一下极光推送的集成与实用。
首先我们要新建工程,如果是Xcode7,需要在plist文件中添加以下代码,把极光推送的sdk导入到工程里,官网都有sdk下载链接,然后根据文档添加依赖库。完成之后我们要在极光推送的服务端建立自己的应用,点击添加应用,填写自己刚才所建立的工程的信息,这里最麻烦的就是上传证书了,我们需要又一个开发者账号,然后配置自己项目在生产环境下和开发环境下的两个证书,配置完成之后以p12文件的形式导出(之前导出的时候一直出问题,导入不进钥匙串,然后我事直接拖进去的,这样也可以的),创建完成之后会自动分配一个appkey。这些基本工作完成之后我们开始进入代码的编写(iOS6几本已被淘汰,这里不做过多介绍)。
极光推送的APIs主要集中在JPUSHService接口里,所以我们只需要在appdelegate里导入都文件#import "JPUSHService.h"即可,因为要使用到设备的UUID,所以你也需要导入#import
appKey:为我们在极光推送创建应用时分配的一个
channel: 可自行设置渠道、
apsForProduction: 0为开发环境,1为生产环境
NSString *advertisingId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
//Required
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];
}
[JPUSHService setupWithOption:launchOptions appKey:appKey
channel:@"App Store"
apsForProduction:@"0"
advertisingIdentifier:advertisingId];
然后在didRegisterForRemoteNotificationsWithDeviceToken
方法中添加如下代码[JPUSHService registerDeviceToken:deviceToken](DeviceToken)
为了实用iOS6及以下,需要在didReceiveRemoteNotification
方法里添加如下代码[JPUSHService handleRemoteNotification:userInfo];
然后就是最后一步我们子啊如下方法中收到服务端给我们发来的推送消息
- (void)application:(UIApplication *)application didReceiveRemoteNotification:
(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchRes
ult))completionHandler {
// IOS 7 Support Required
[JPUSHService handleRemoteNotification:userInfo];
completionHandler(UIBackgroundFetchResultNewData);
}
配置完成之后我们就可以进行推送测试了,这个在不需要服务端的情况下也可以,打开官网,进入推送消息页面,如下图:
然后点击底部的立即发送按钮,当手机收到推送消息时(应用内可以收到推送消息但不会显示推送图标,要看到效果最好是在应用外部),就表明集成成功了
顺便介绍下,刚入职场的新人可能不太了解类似于QQ空间动态消息评论之类的推送是如何做到的:这个其实很简单,就是前端只需要按照如上步骤进行配置就行,配置完成之后就是由服务端进行操作,这个前端是不要操心的,前端只需要操作的是在我们接到服务端发给我们的推送时我们进行相关操作就行了。