中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

IOS推送功能的實現
來源:易賢網 閱讀:1846 次 日期:2015-05-08 14:41:53
溫馨提示:易賢網小編為您整理了“IOS推送功能的實現”,方便廣大網友查閱!

IOS的推送實現由這樣幾步來完成:

創建Push SSL Certification

IOS客戶端注冊Push功能并獲得DeviceToken

使用Provider向APNS發送Push消息

IOS客戶端接收處理由APNS發來的消息

創建Push SSL Certification

登錄developer.apple.com,創建新的App ID,要求此ID的Bundle Identifier不包含通配符,否則不能啟用Push以及IAP功能。例如 com.soso.sosoimage。

在App IDs列表頁面,點擊剛創建的app id右面的Configure鏈接,進入Configure App ID界面,選中"Enable for App Push Notification service"。點擊Development Push SSL Certificate一行的Configure按鈕,彈出"Apple Push Notification service SSL Certificate Assistant"對話框,依對話框操作,類似于創建開發或發布用的Certificate。

最終將Development Push SSL Certificate下載并安裝到本地Keychain Access。導出成p12文件,備用。導出時需要設置密碼,不得為空。

在developer.apple.com,創建一個新的Provisioning Profile,使用我們剛剛創建的支持Push功能的App ID。下載并安裝到本地。

IOS客戶端注冊Push功能并獲得DeviceToken

創建本地工程,info.plist中設置Bundle identifier為剛剛創建的Bundle Id。Com.soso.sosoimage。設定Code Signing Identity為剛剛創建的Provisioning Profile。

程序第一次執行的時候,調用如下代碼.

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];

三個參數分別代表消息(橫幅或提醒,由用戶Setting決定,程序不可更改)、數字標記、聲音。

在AppDelegate.m中添加兩個方法.

//iPhone 從APNs服務器獲取deviceToken后回調此方法

- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

{

NSString* dt = [[deviceToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];

NSLog(@"deviceToken:%@", dt);

}

//注冊push功能失敗 后 返回錯誤信息,執行相應的處理

- (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err

{

NSLog(@"Push Register Error:%@", err.description);

}

獲取DeviceToken后,將其傳給Provider。

使用Provider向APNS發送Push消息

Provider,將推送信息發送給APNS(蘋果推送服務器)的程序。有很多開源的實現,我們使用javapns ( )。

首先,Provider要有目標DeviceToken,這是發送目標,由客戶端傳給Provider之后存在某處。

安裝javapns,需要導入的jar為bcprov-jdk15-146.jar, log4j-1.2.15.jar, JavaPNS_2.3_Alpha_5.jar。

將前面導出的P12文件放在Provider的工程目錄下。

Provider向APNS發送消息可以參考javapns中NotificationTest.java。也可以參考如下例子。

(1)使客戶端圖標顯示數字標記

Push.badge(2, keystore, password, false, "7bb8d508e32df651c6c239439737dbd40a88d2461ad2ac1e5dbe49ecea5ccc67");

其中,2為要顯示的數字;

String keystore = "PushCertificates.p12"; //P12文件的路徑;

String password = "sosoimage"; //P12文件的密碼;

false,指的是使用測試環境,使用正式產品環境應傳入true.

"7bb8d508e32df651c6c239439737dbd40a88d2461ad2ac1e5dbe49ecea5ccc67"為客戶端獲得并傳給Provider的DeviceToken,此參數還可以傳入String[]對象,以同時向多個客戶端Push消息。

(2)使客戶端顯示橫幅或提醒

Provider可以向客戶端Push一條Message,但客戶端有權限決定這條Message的顯示方式(無、橫幅、提醒)。

Push.alert("A Message", keystore, password, )false, "7bb8d508e32df651c6c239439737dbd40a88d2461ad2ac1e5dbe49ecea5ccc67");

(3)混合方式

可以在一個Push消息里附帶多種信息,Message, 標記,聲音,可以使用如下代碼.

PushNotificationPayload payload = PushNotificationPayload.complex();

payload.addAlert("A Message");

payload.addBadge(2);

payload.addSound("test.aiff");

Push.payload(payload, , keystore, password, false, "7bb8d508e32df651c6c239439737dbd40a88d2461ad2ac1e5dbe49ecea5ccc67");

上面的代碼都有可能會有相應的Exception拋出來,需要處理。更多的使用方式可以參考

IOS客戶端接收處理由APNS發來的消息

(1)當程序未啟動,用戶接收到消息。需要在AppDelegate中的didFinishLaunchingWithOptions得到消息內容。代碼如下,

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

...

NSDictionary* payload = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

if (payload)

{

...

}

...

}

(2)當程序在前臺運行,接收到消息不會有消息提示(提示框或橫幅)。當程序運行在后臺,接收到消息會有消息提示,點擊消息后進入程序,AppDelegate的didReceiveRemoteNotification函數會被調用(需要自己重寫),消息做為此函數的參數傳入,代碼如下

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)payload

{

...

}

(3)無論在哪個函數傳入,消息總是一個NSDictionary對象,處理方式可以參考如下代碼

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)payload

{

NSLog(@"remote notification:description]);

NSString* alertStr = nil;

NSDictionary *apsInfo = [payload objectForKey:@"aps"];

NSObject *alert = [apsInfo objectForKey:@"alert"];

if ([alert isKindOfClass:[NSString class]])

{

alertStr = (NSString*)alert;

}

else if ([alert isKindOfClass:[NSDictionary class]])

{

NSDictionary* alertDict = (NSDictionary*)alert;

alertStr = [alertDict objectForKey:@"body"];

}

application.applicationIconBadgeNumber = [[apsInfo objectForKey:@"badge"] integerValue];

if ([application applicationState] == UIApplicationStateActive && alertStr != nil)

{

UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@"Pushed Message" message:alertStr delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];

[alertView show];

}

}

更多信息請查看IT技術專欄

更多信息請查看技術文章
易賢網手機網站地址:IOS推送功能的實現
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
欧美精品尤物在线| 韩日精品视频一区| 国模精品一区二区三区| 蜜臀91精品一区二区三区| 亚洲精品久久久久久久久| 老司机久久99久久精品播放免费| 亚洲高清av| 亚洲人成在线播放| 99精品欧美一区二区蜜桃免费| 亚洲精品日日夜夜| 一区二区三区视频免费在线观看| 亚洲人午夜精品免费| 99天天综合性| 欧美一级在线视频| 欧美视频精品在线观看| 在线亚洲电影| 亚洲成人资源| 国产一区二区精品丝袜| 欧美精品免费看| 欧美日本视频在线| 亚洲美女中文字幕| 欧美日韩亚洲91| 免费不卡在线视频| 久久国内精品自在自线400部| 在线日韩中文| 国产午夜精品一区二区三区视频 | 久久精品免视看| 亚洲一区二区在线观看视频| 91久久精品国产91性色| 国产日韩精品一区二区三区在线 | 欧美日本一区| 欧美激情国产日韩| 欧美激情欧美激情在线五月| 欧美成人自拍| 欧美性事在线| 国产一区二区日韩精品欧美精品| 国产精品永久免费视频| 欧美视频官网| 国产精品视频xxx| 国产综合视频| 日韩视频免费观看| 亚洲一区免费视频| 欧美一区二区成人| 欧美国产日韩免费| 欧美日韩国产不卡| 欧美日韩国产首页在线观看| 欧美国产欧美亚洲国产日韩mv天天看完整 | 好吊色欧美一区二区三区视频| 国产精品一区二区欧美| 欲香欲色天天天综合和网| 亚洲乱亚洲高清| 亚洲免费伊人电影在线观看av| 午夜激情一区| 欧美日韩综合一区| 亚洲第一页在线| 久久国产精彩视频| 国产精品99免费看| 亚洲免费观看高清完整版在线观看| 亚洲性xxxx| 欧美日韩一区在线播放| 亚洲福利专区| 久久精品国产成人| 国产嫩草一区二区三区在线观看| 在线观看日韩av先锋影音电影院| 午夜久久资源| 国产精品一区在线观看你懂的| 亚洲视频一区在线观看| 欧美激情偷拍| 在线视频一区观看| 国产一级久久| 国产亚洲毛片在线| 正在播放欧美视频| 国产精品久久99| 久久gogo国模裸体人体| 国产亚洲成精品久久| 久久美女性网| 亚洲看片一区| 国产精品久久777777毛茸茸| 一本一道久久综合狠狠老精东影业 | 91久久久亚洲精品| 欧美大片在线看| 亚洲天堂成人在线观看| 国产日韩欧美视频| 欧美成人一区二区在线| 亚洲一区二区三区在线看| 国产一区二区三区在线观看视频| 免费欧美在线| 欧美亚洲一区| 一区二区三区四区五区精品| 国产一区二区精品久久91| 欧美国产在线观看| 久久久在线视频| 亚洲午夜激情网站| 在线观看欧美一区| 国产亚洲免费的视频看| 欧美精品一区二| 久久久福利视频| 亚洲日本激情| 久久国产精品99国产精| 亚洲精品一区久久久久久| 精品盗摄一区二区三区| 国产麻豆成人精品| 欧美日韩午夜在线| 欧美激情小视频| 美国十次了思思久久精品导航| 欧美亚洲一区在线| 欧美一区二区三区在线观看| 亚洲免费在线电影| 亚洲欧美综合精品久久成人| 亚洲一区尤物| 欧美在线日韩在线| 久久香蕉国产线看观看网| 久久精品人人爽| 模特精品在线| 欧美午夜美女看片| 欧美日韩午夜在线视频| 国产精品yjizz| 国产一区二区三区久久久| 国内精品99| 国内不卡一区二区三区| 亚洲国产99精品国自产| 一区二区三区精品| 欧美一区二区三区精品| 免费在线欧美黄色| 国产日韩精品在线观看| 亚洲电影中文字幕| 亚洲影视九九影院在线观看| 久久国产成人| 欧美日韩在线综合| 韩国一区二区三区美女美女秀| 99国产精品久久久久久久久久 | 欧美日韩亚洲综合一区| 欧美日韩一区二区三区免费看| 国产三级精品三级| 亚洲国产一区在线| 日韩亚洲精品视频| 久久久亚洲一区| 欧美日韩国产限制| 91久久线看在观草草青青| 99综合在线| 久久天堂成人| 国产精品免费福利| 亚洲人成网站777色婷婷| 美女视频黄免费的久久| 国产女主播在线一区二区| 中文久久精品| 欧美午夜在线视频| 国产又爽又黄的激情精品视频| 亚洲一区二区3| 免费在线欧美黄色| 亚洲免费观看在线观看| 久热精品视频在线| 国产综合色在线视频区| 久久久另类综合| 亚洲伦理在线观看| 国产精品高潮呻吟久久av黑人| 亚洲精品123区| 欧美日韩影院| 一区二区三区四区五区精品视频| 欧美成人精品h版在线观看| 黄色精品在线看| 亚洲国产欧美一区二区三区同亚洲| 亚洲欧美99| 伊伊综合在线| 欧美电影电视剧在线观看| 激情久久久久久久久久久久久久久久| 亚洲欧美日韩精品久久| 国产日韩欧美一区二区三区在线观看| 亚洲视频一区在线观看| 韩日视频一区| 国产精品网站在线播放| 欧美与欧洲交xxxx免费观看| 激情综合激情| 欧美日韩精品二区第二页| 久久精品久久99精品久久| 国内精品亚洲| 国产精品电影在线观看| 欧美主播一区二区三区| 在线日韩欧美视频| 精品动漫3d一区二区三区免费| 欧美大胆a视频| 裸体一区二区三区| 欧美在线免费视屏| 亚洲性夜色噜噜噜7777| 亚洲美女啪啪| 永久免费精品影视网站| 国产精品捆绑调教| 免费观看亚洲视频大全| 欧美承认网站| 欧美激情一区二区三区在线视频| 欧美亚洲尤物久久| 亚洲香蕉伊综合在人在线视看| 国产亚洲精品aa| 黄色成人在线网址| 国产精品一区免费观看| 国产精品国产三级国产专播精品人 | 欧美午夜国产| 欧美精品麻豆| 欧美日韩精品一区二区天天拍小说| 美国十次成人|