資源描述:
《IOS推送功能的實(shí)現(xiàn)(javapns)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、101?文章-6?評(píng)論-100?IOS推送功能的實(shí)現(xiàn)(javapns)IOS的推送實(shí)現(xiàn)由這樣幾步來(lái)完成:1.創(chuàng)建PushSSLCertification2.IOS客戶端注冊(cè)Push功能并獲得DeviceToken3.使用Provider向APNS發(fā)送Push消息4.IOS客戶端接收處理由APNS發(fā)來(lái)的消息創(chuàng)建PushSSLCertification???登錄developer.apple.com,創(chuàng)建新的AppID,要求此ID的BundleIdentifier不包含通配符,否則不能啟用Push以及IAP功能。例如com.soso.so
2、soimage。???在AppIDs列表頁(yè)面,點(diǎn)擊剛創(chuàng)建的appid右面的Configure鏈接,進(jìn)入ConfigureAppID界面,選中"EnableforAppPushNotificationservice"。點(diǎn)擊DevelopmentPushSSLCertificate一行的Configure按鈕,彈出"ApplePushNotificationserviceSSLCertificateAssistant"對(duì)話框,依對(duì)話框操作,類似于創(chuàng)建開(kāi)發(fā)或發(fā)布用的Certificate。???最終將DevelopmentPushSSLCe
3、rtificate下載并安裝到本地KeychainAccess。導(dǎo)出成p12文件,備用。導(dǎo)出時(shí)需要設(shè)置密碼,不得為空。???在developer.apple.com,創(chuàng)建一個(gè)新的ProvisioningProfile,使用我們剛剛創(chuàng)建的支持Push功能的AppID。下載并安裝到本地。?IOS客戶端注冊(cè)Push功能并獲得DeviceToken???創(chuàng)建本地工程,info.plist中設(shè)置Bundleidentifier為剛剛創(chuàng)建的BundleId。Com.soso.sosoimage。設(shè)定CodeSigningIdentity為剛剛創(chuàng)建
4、的ProvisioningProfile。???程序第一次執(zhí)行的時(shí)候,調(diào)用如下代碼.[[UIApplicationsharedApplication]registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert
5、UIRemoteNotificationTypeBadge
6、UIRemoteNotificationTypeSound)];三個(gè)參數(shù)分別代表消息(橫幅或提醒,由用戶Setting決定,程序不可更改)、數(shù)字標(biāo)記、聲音。在AppDelegate.m中添加兩個(gè)方法
7、.//iPhone從APNs服務(wù)器獲取deviceToken后回調(diào)此方法-(void)application:(UIApplication*)appdidRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken{NSString*dt=[[deviceTokendescription]stringByTrimmingCharactersInSet:[NSCharacterSetcharacterSetWithCharactersInString:@"<>"]]
8、;NSLog(@"deviceToken:%@",dt);}//注冊(cè)push功能失敗后返回錯(cuò)誤信息,執(zhí)行相應(yīng)的處理-(void)application:(UIApplication*)appdidFailToRegisterForRemoteNotificationsWithError:(NSError*)err{NSLog(@"PushRegisterError:%@",err.description);}獲取DeviceToken后,將其傳給Provider。使用Provider向APNS發(fā)送Push消息Provider,將推送信
9、息發(fā)送給APNS(蘋(píng)果推送服務(wù)器)的程序。有很多開(kāi)源的實(shí)現(xiàn),我們使用javapns(http://code.google.com/p/javapns/)。首先,Provider要有目標(biāo)DeviceToken,這是發(fā)送目標(biāo),由客戶端傳給Provider之后存在某處。安裝javapns,需要導(dǎo)入的jar為bcprov-jdk15-146.jar,log4j-1.2.15.jar,JavaPNS_2.3_Alpha_5.jar。將前面導(dǎo)出的P12文件放在Provider的工程目錄下。Provider向APNS發(fā)送消息可以參考javapns中
10、NotificationTest.java。也可以參考如下例子。(1)使客戶端圖標(biāo)顯示數(shù)字標(biāo)記Push.badge(2,keystore,password,false,"7bb8d508e32df651c6c239439