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

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)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
国产精品久久久一区麻豆最新章节| 欧美极品在线观看| 国产日韩欧美高清| 精品白丝av| 亚洲精品在线一区二区| 亚洲男人影院| 美日韩精品免费| 欧美大片免费久久精品三p | 国产精品videosex极品| 国内视频一区| 亚洲婷婷免费| 蜜桃久久av一区| 国产精品推荐精品| 日韩视频免费在线| 久久裸体视频| 国产区日韩欧美| 亚洲一区日韩在线| 欧美精品一区二区三区蜜臀| 黄色综合网站| 久久精品国产v日韩v亚洲| 国产精品欧美久久| 亚洲午夜精品17c| 欧美精品一区二区高清在线观看| 国产一区二区三区黄| 亚洲欧美中文日韩v在线观看| 欧美精品成人在线| 亚洲国产mv| 欧美成人乱码一区二区三区| 国产一区二区中文| 久久精品亚洲精品| 国产在线一区二区三区四区 | 欧美视频在线播放| 亚洲精品中文字幕有码专区| 美女久久网站| 在线欧美电影| 免费精品99久久国产综合精品| ●精品国产综合乱码久久久久| 久久精品三级| 国内成+人亚洲| 久久久久久久综合色一本| 狠狠色丁香婷婷综合影院| 久久青草欧美一区二区三区| 国内精品久久国产| 久久综合国产精品| 亚洲人成在线观看一区二区| 欧美精品一区三区| 一本色道久久| 国产九九精品| 久久精品91久久久久久再现| 在线免费观看一区二区三区| 欧美日韩成人一区二区| 99re热这里只有精品免费视频| 国产精品wwwwww| 久久精品99国产精品日本| 激情欧美一区二区三区在线观看| 老司机精品久久| 亚洲视频在线观看视频| 好吊色欧美一区二区三区四区| 欧美成人影音| 久久国产乱子精品免费女 | 欧美日韩亚洲综合在线| 亚洲狼人综合| 国产欧美在线| 免费高清在线一区| 亚洲一区二区av电影| 国产一区二区丝袜高跟鞋图片| 久久久精品五月天| 亚洲靠逼com| 韩日精品在线| 国产精品亚洲人在线观看| 欧美福利在线观看| 欧美专区在线观看一区| 一区二区三区日韩欧美| 在线播放亚洲一区| 国产精品日韩在线一区| 欧美理论电影网| 羞羞视频在线观看欧美| 亚洲美女性视频| 国产又爽又黄的激情精品视频 | 久久精品99国产精品| 亚洲欧洲日产国产综合网| 国产亚洲欧洲一区高清在线观看 | 宅男在线国产精品| 悠悠资源网亚洲青| 国产视频精品免费播放| 欧美日韩免费视频| 欧美成人69av| 老鸭窝91久久精品色噜噜导演| 午夜亚洲影视| 亚洲欧美日韩国产综合在线| 亚洲精品乱码久久久久久久久| 国产在线精品一区二区夜色| 国产精品日韩二区| 国产精品久久久久久久久久免费看| 欧美久久久久久久| 欧美日韩日本网| 久久免费精品日本久久中文字幕| 欧美一级专区免费大片| 中文亚洲欧美| 亚洲一区二区三区四区视频| 亚洲高清久久| 尤物网精品视频| 国产日韩欧美在线视频观看| 国产乱码精品一区二区三| 欧美区日韩区| 欧美精品www在线观看| 久久久久久网址| 久久精品九九| 欧美成人精精品一区二区频| 免费h精品视频在线播放| 久久躁日日躁aaaaxxxx| 久久婷婷久久一区二区三区| 久久深夜福利免费观看| 久久综合色综合88| 欧美激情视频免费观看| 欧美日韩在线大尺度| 国产精品久久久久久五月尺| 国产九九精品| 在线观看日韩av| 在线观看中文字幕不卡| 尤物精品在线| 一区二区三区欧美在线观看| 亚洲手机在线| 欧美在线播放一区| 蜜臀av在线播放一区二区三区| 欧美精品v日韩精品v国产精品 | 亚洲综合激情| 久久成人在线| 蜜臀99久久精品久久久久久软件 | 一本色道久久综合亚洲精品婷婷 | 亚洲图片欧洲图片av| 亚洲一区二区三区在线视频| 久久黄色影院| 欧美精品aa| 国产一区二区看久久| 亚洲经典在线看| 亚洲字幕一区二区| 欧美a级一区二区| 国产精品久久久久影院亚瑟| 伊人狠狠色丁香综合尤物| 中文成人激情娱乐网| 久久青青草原一区二区| 欧美日韩精品综合| 国产综合久久久久久鬼色| 一区二区三区四区五区在线| 久久久久国产精品www| 欧美调教vk| 在线观看亚洲视频啊啊啊啊| 亚洲视频在线一区| 男人插女人欧美| 国产一区二区三区四区三区四 | 欧美午夜精品理论片a级按摩| 国产视频丨精品|在线观看| 亚洲精选中文字幕| 久久精品视频一| 国产精品麻豆欧美日韩ww| 亚洲欧洲精品一区| 久久精品国产亚洲a| 国产精品亚洲综合| 艳妇臀荡乳欲伦亚洲一区| 久久伊人亚洲| 国产一区二区高清视频| 亚洲麻豆av| 欧美成人精品一区| 激情综合色丁香一区二区| 欧美影院一区| 国产精品视频免费一区| 亚洲精品久久嫩草网站秘色 | 国产精品私拍pans大尺度在线| 在线 亚洲欧美在线综合一区| 99国产精品一区| 欧美成在线观看| 国内外成人在线视频| 午夜精品影院| 国产毛片精品视频| 欧美在线视频全部完| 国产亚洲精品久久久久婷婷瑜伽| 亚洲欧美日韩一区在线观看| 国产精品视频午夜| 欧美一区二区在线免费播放| 国产精品在线看| 久久成人精品一区二区三区| 国产日韩欧美在线播放| 欧美在线资源| 在线观看亚洲精品| 欧美另类69精品久久久久9999| 亚洲精品网址在线观看| 欧美日韩久久久久久| 亚洲一区二区三区欧美| 国产欧美综合一区二区三区| 久久久噜噜噜久久中文字幕色伊伊| 韩国三级在线一区| 欧美激情一区二区| 亚洲综合国产精品| 国产亚洲亚洲| 欧美a级一区| 亚洲素人在线| 国产一区二区三区四区在线观看 | 国产伪娘ts一区| 蜜桃av一区二区|