本文為大家介紹快速集成極光推送
?????? 大家都知道我們在項(xiàng)目中進(jìn)行的推送一般都是走第三方的,目前用的比較多的是極光,信鴿等≡蛞鳎基本原理大多類似,今天為大家介紹一下極光推送的集成與實(shí)用锄蹂。
?????? 首先我們要新建工程氓仲,如果是Xcode7,需要在plist文件中添加以下代碼,把極光推送的sdk導(dǎo)入到工程里敬扛,官網(wǎng)都有sdk下載鏈接晰洒,然后根據(jù)文檔添加依賴庫。完成之后我們要在極光推送的服務(wù)端建立自己的應(yīng)用啥箭,點(diǎn)擊添加應(yīng)用谍珊,填寫自己剛才所建立的工程的信息,這里最麻煩的就是上傳證書了急侥,我們需要又一個(gè)開發(fā)者賬號砌滞,然后配置自己項(xiàng)目在生產(chǎn)環(huán)境下和開發(fā)環(huán)境下的兩個(gè)證書,配置完成之后以p12文件的形式導(dǎo)出(之前導(dǎo)出的時(shí)候一直出問題坏怪,導(dǎo)入不進(jìn)鑰匙串贝润,然后我事直接拖進(jìn)去的,這樣也可以的)铝宵,創(chuàng)建完成之后會(huì)自動(dòng)分配一個(gè)appkey打掘。這些基本工作完成之后我們開始進(jìn)入代碼的編寫(iOS6幾本已被淘汰,這里不做過多介紹)鹏秋。
? ? ? 極光推送的APIs主要集中在JPUSHService接口里尊蚁,所以我們只需要在appdelegate里導(dǎo)入都文件#import "JPUSHService.h"即可,因?yàn)橐褂玫皆O(shè)備的UUID侣夷,所以你也需要導(dǎo)入#import<AdSupport/ASIdentifierManager.h>,然后再didFinishLaunchingWithOptions方法中添加如下代碼():
appKey:為我們在極光推送創(chuàng)建應(yīng)用時(shí)分配的一個(gè)
channel: 可自行設(shè)置渠道横朋、
apsForProduction: 0為開發(fā)環(huán)境,1為生產(chǎn)環(huán)境
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)
為了實(shí)用iOS6及以下百拓,需要在didReceiveRemoteNotification
方法里添加如下代碼[JPUSHService handleRemoteNotification:userInfo];
然后就是最后一步我們子啊如下方法中收到服務(wù)端給我們發(fā)來的推送消息
- (void)application:(UIApplication *)application didReceiveRemoteNotification:
(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchRes
ult))completionHandler {
// IOS 7 Support Required
[JPUSHService handleRemoteNotification:userInfo];
completionHandler(UIBackgroundFetchResultNewData);
}
配置完成之后我們就可以進(jìn)行推送測試了叶撒,這個(gè)在不需要服務(wù)端的情況下也可以,打開官網(wǎng)耐版,進(jìn)入推送消息頁面,如下圖:
然后點(diǎn)擊底部的立即發(fā)送按鈕压汪,當(dāng)手機(jī)收到推送消息時(shí)(應(yīng)用內(nèi)可以收到推送消息但不會(huì)顯示推送圖標(biāo)粪牲,要看到效果最好是在應(yīng)用外部),就表明集成成功了
????? 順便介紹下止剖,剛?cè)肼殘龅男氯丝赡懿惶私忸愃朴赒Q空間動(dòng)態(tài)消息評論之類的推送是如何做到的:這個(gè)其實(shí)很簡單腺阳,就是前端只需要按照如上步驟進(jìn)行配置就行,配置完成之后就是由服務(wù)端進(jìn)行操作穿香,這個(gè)前端是不要操心的亭引,前端只需要操作的是在我們接到服務(wù)端發(fā)給我們的推送時(shí)我們進(jìn)行相關(guān)操作就行了。