1066
阿裏雲
iOS SDK配置__iOS SDK手冊_App SDK 手冊_移動推送-阿裏雲
- 使用前必讀:移動推送名詞解釋&約束
1. 創建應用
到阿裏雲移動推送控製台創建應用,應用創建完成後,進入移動推送相關模塊進行設置,具體操作請參見 創建APP。
- iOS應用推送需配置開發環境/生產環境推送證書,具體可參見iOS推送證書設置。
2. SDK下載和集成
2.1 SDK下載
- 在移動推送控製台進行SDK下載;

2.2 SDK引用說明
2.2.1 公共包依賴
- libz.tbd
- libresolv.tbd
- CoreTelephony.framework
- SystemConfiguration.framework
- libsqlite3.tbd(阿裏雲平台下載的SDK無需依賴,百川平台下載的SDK需要依賴)
2.2.2 SDK目錄結構
- CloudPushSDK.framework
- AlicloudUtils.framework
- UTDID.framework
- UTMini.framework(阿裏雲平台下載的SDK無需依賴,百川平台下載的SDK需要依賴)
2.2.3 引入Framework
- Xcode中,直接把下載SDK目錄中的framework拖入對應Target下即可,在彈出框勾選
Copy items if needed。 - 在
Build Phases -> Link Binary With Libraries中,引入2.2.1列出的公共包;
2.2.4 工程引入頭文件
#import <CloudPushSDK/CloudPushSDK.h>
2.2.5 說明
- 應用的targets -> Build Settings -> Linking -> Other Linker Flags,請加上
-ObjC這個屬性,否則推送服務無法正常使用 iOS 9引入了App Transport Security(ATS)機製,可參考App Transport Security(ATS)機製。 要求App內訪問的網絡必須使用HTTPS協議,現在阿裏移動推送使用的是HTTP安全的加簽訪問機製來保證安全,未使用HTTPS,所以解決方法如下:在工程的Info.plist中添加NSAppTransportSecurity,添加後會自動轉變為App Transport Security Setting,右擊該選項選擇Show Raw Key/Values,可顯示原本添加名;將該選項點擊鋪開(黑色三角指向下),右擊選擇Add Row,會自動顯示ItemAllow Arbitrary Loads,將Value值設為YES;
- 移動推送iOS SDK已經完成ATS適配,請求都以HTTPS發出,無需在Info.plist中進行ATS配置。
3. Push SDK使用
- 請參照以下代碼完成SDK的初始化,其中appKey/appSecret的獲取參考創建App;
- (void)initCloudPush {// SDK初始化[CloudPushSDK asyncInit:@"*****" appSecret:@"*****" callback:^(CloudPushCallbackResult *res) {if (res.success) {NSLog(@"Push SDK init success, deviceId: %@.", [CloudPushSDK getDeviceId]);} else {NSLog(@"Push SDK init failed, error: %@", res.error);}}];}
- 向蘋果APNs注冊獲取deviceToken並上報到阿裏雲推送服務器;
/*** 注冊蘋果推送,獲取deviceToken用於推送** @param application*/- (void)registerAPNS:(UIApplication *)application {if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {// iOS 8 Notifications[application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge)categories:nil]];[application registerForRemoteNotifications];}else {// iOS < 8 Notifications[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];}}/** 蘋果推送注冊成功回調,將蘋果返回的deviceToken上傳到CloudPush服務器*/- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {[CloudPushSDK registerDevice:deviceToken withCallback:^(CloudPushCallbackResult *res) {if (res.success) {NSLog(@"Register deviceToken success.");} else {NSLog(@"Register deviceToken failed, error: %@", res.error);}}];}/** 蘋果推送注冊失敗回調*/- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {NSLog(@"didFailToRegisterForRemoteNotificationsWithError %@", error);}
- 推送消息到來監聽;
/*** 注冊推送消息到來監聽*/- (void)registerMessageReceive {[[NSNotificationCenter defaultCenter] addObserver:selfselector:@selector(onMessageReceived:)name:@"CCPDidReceiveMessageNotification"object:nil];}/*** 處理到來推送消息** @param notification*/- (void)onMessageReceived:(NSNotification *)notification {CCPSysMessage *message = [notification object];NSString *title = [[NSString alloc] initWithData:message.title encoding:NSUTF8StringEncoding];NSString *body = [[NSString alloc] initWithData:message.body encoding:NSUTF8StringEncoding];NSLog(@"Receive message title: %@, content: %@.", title, body);}
通知打開監聽
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {// 點擊通知將App從關閉狀態啟動時,將通知打開回執上報// [CloudPushSDK handleLaunching:launchOptions];(Deprecated from v1.8.1)[CloudPushSDK sendNotificationAck:launchOptions];return YES;}/** App處於啟動狀態時,通知打開回調*/- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo {NSLog(@"Receive one notification.");// 取得APNS通知內容NSDictionary *aps = [userInfo valueForKey:@"aps"];// 內容NSString *content = [aps valueForKey:@"alert"];// badge數量NSInteger badge = [[aps valueForKey:@"badge"] integerValue];// 播放聲音NSString *sound = [aps valueForKey:@"sound"];// 取得Extras字段內容NSString *Extras = [userInfo valueForKey:@"Extras"]; //服務端中Extras字段,key是自己定義的NSLog(@"content = [%@], badge = [%ld], sound = [%@], Extras = [%@]", content, (long)badge, sound, Extras);// iOS badge 清0application.applicationIconBadgeNumber = 0;// 通知打開回執上報// [CloudPushSDK handleReceiveRemoteNotification:userInfo];(Deprecated from v1.8.1)[CloudPushSDK sendNotificationAck:userInfo];}
如果使用推送模塊,請參考移動推送常見問題
最後更新:2016-12-15 18:25:21
上一篇:
iOS推送證書設置__iOS SDK手冊_App SDK 手冊_移動推送-阿裏雲
下一篇:
iOS API介紹__iOS SDK手冊_App SDK 手冊_移動推送-阿裏雲
錯誤碼說明__調用方式_API參考手冊_開放搜索-阿裏雲
Java SDK實例程序__最佳實踐_歸檔存儲-阿裏雲
產品術語__產品簡介_數據集成-阿裏雲
查詢轉碼配置信息__直播流操作接口_API 手冊_CDN-阿裏雲
Linux可視化操作界麵__應用場景_產品簡介_數據管理-阿裏雲
公測開通指南___用戶手冊_雲服務總線 CSB-阿裏雲
院士潘建偉:阿裏雲與中科院聯合發布量子計算雲平台,計算能力有望躍升100萬倍
Check Point “飛天”阿裏雲 vSEC在雲棲大會閃亮登場
查詢API上綁定的流控策略__流量控製相關接口_API_API 網關-阿裏雲
雲服務器 ECS 雲服務器宕機排查
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲