一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

“iOS 推送通知”詳解:從創(chuàng)建到設(shè)置到運行

 求知665 2014-10-19

這是一篇編譯的文章,內(nèi)容均出自Parse.com的iOS開發(fā)教程,同時作者還提供了視頻講解。本文將帶領(lǐng)開發(fā)者一步一步向著iOS推送通知的深處探尋,掌握如何配置iOS推送通知的奧義。

介紹一點點背景資料

眾所周知,使用推送通知是一個很棒的、給應(yīng)用添加實時消息通知的方式。這樣做的結(jié)局是,開發(fā)者和用戶之間,彼此永遠(yuǎn)保持著一種令人愉悅的親密關(guān)系。

然而不幸的是,iOS的推送通知并非那么容易駕馭,往往會搞的開發(fā)者精疲力盡,灰心喪氣,無法持久?,F(xiàn)在,救星來了!只要通讀本教程,你就能擺脫這些煩惱,成為一名活力四射,精壯(Robust I mean?。┑拈_發(fā)者。

正式開始之前的準(zhǔn)備工作

我們先來從Apple Developer網(wǎng)站上創(chuàng)建一個關(guān)聯(lián)App ID和開發(fā)供應(yīng)配置文件的SSL證書,來開始這段美好的教程。接著,我們看看在iOS下是如何在解析網(wǎng)站(Parse website)配置解析程序(Parse app)的。最后,我們把這些理論付諸實踐,創(chuàng)建一個帶有推送功能的App,并且將消息推到用戶。

在開始這段美好旅程之前,大家一定要注意iOS模擬器是不支持推送的,所以你必須想辦法找一臺真機過來。還有就是要有蘋果開發(fā)者協(xié)議,之后才能在真機上面進(jìn)行開發(fā)和測試。

創(chuàng)建SSL證書

首先,需要在蘋果開發(fā)者網(wǎng)站上創(chuàng)建一個App ID以及關(guān)聯(lián)的SSL證書,有了這個證書,解析服務(wù)器才能將找到你的App ID,繼而將通知推送到該應(yīng)用。

創(chuàng)建一個證書請求

首先的首先,我們需要有一個證書簽名請求文件,之后創(chuàng)建SSL證書才有意義。創(chuàng)建文件的方法如下:

1.在Mac上運行鑰匙串訪問(keychain)

2.選擇鑰匙串訪問 > 證書助理 > 從證書頒發(fā)機構(gòu)中請求一個證書

3.輸入你的名字和郵件地址,CA郵件地址默認(rèn)就可以,不要試圖去進(jìn)行任何改動。

4.選擇“保存到硬盤”,這樣就會將剛創(chuàng)建的證書請求文件下載到電腦桌面上了。

創(chuàng)建并調(diào)教一個App ID

每個安裝在你開發(fā)者設(shè)備上的iOS程序都需要一個獨有的App ID,方便起見,App ID以反向路徑規(guī)則命名,形如com.parseSampleApp,但是一定要注意App ID里不能包含星號("*")。創(chuàng)建步驟如下:

1.登陸網(wǎng)站Apple Developer Member Center并進(jìn)入iOS Provisioning Portal

2.從左邊欄里點擊App IDs。

3.選擇New App ID,然后創(chuàng)建一個新的App ID。一定要確保Bundle Identifier一欄中沒有星號。

4.在你的App ID下面找到Configure,選中。

5.將“Enable for Apple Push Notification service”勾選上,然后點擊Development Push SSL Certificate下面的Configure,然后會出現(xiàn)Apple Push Notification service SSL Certificate Assistant設(shè)置向?qū)А?/p>

6.點擊Continue繼續(xù),然后點擊Choose File,選中剛創(chuàng)建見的.certSigningRequest文件。

7.點擊Generate開始生成,然后點擊Download下載生成的SSL證書。

8.通過keychain程序來安裝下載好的SSL證書。

9.接著在“我的證書”選項先面,找到你剛才安裝名稱形如“Apple Development IOS Push Services: xxx”的證書。

10.雙擊證書,選擇“導(dǎo)出”,導(dǎo)出后的文件后綴名為.p12。這個時候千萬注意!出現(xiàn)密碼提示的時候一定不要添任何東西。

這里值得注意的一點就是,至此我們只是將應(yīng)用的推送通知功能在開發(fā)模式中開啟了,所以應(yīng)用開始正式發(fā)布之前,一定記得要將第四步到第九步的流程重新走一遍,并將第五步中的“Development Push SSL Certificate”改成“Production Push SSL Certificate”。這樣就完美了。

創(chuàng)建一個Provisioning Profile(配置簡介)

Provisioning Profile會驗證運行所開發(fā)應(yīng)用的設(shè)備。而且不管你是新建一個App ID還是去修改現(xiàn)成的,都得重新生成并安裝一遍Provisioning Profile。步驟如下:

1.在iOS Provisioning Portal中選擇Provisioning變遷。

2.點擊New Profile

3.填好對應(yīng)的信息,確保一下三項(developer certificate、上面剛創(chuàng)建好的App ID以及用于測試的設(shè)備)都沒有遺漏,全都選中。

4.點擊Actions一欄下面的Download按鈕下載生成好的Provisioning Profile。

5.雙擊下載好的文件,默認(rèn)是由iPhone Configuration Utility程序開。

配置Parse App

要想在推送通知中使用Parse功能,必須將此項特性設(shè)置成開啟狀態(tài),然后將上面創(chuàng)建好的推送SSL證書上傳上去。步驟如下:

1.在Parse website上找到你的Parse app,然后選擇Settings標(biāo)簽頁。

2.在iOS Push Notification Settings下面,點擊Choose File,然后將之前用keychain導(dǎo)出的.p12文件上傳上去。

3.如果希望用戶能夠發(fā)送推送通知,我們需要將Client push enabled?選項中的Yes勾選上。這個功能對于像即時聊天的軟件非常有用,我們現(xiàn)在將它勾選上,當(dāng)然開發(fā)者需要自行決定是否要開啟這項功能。

4.點擊Save保存。

至此,所有的前提條件都搞完了,馬上進(jìn)入最激動人心的創(chuàng)建一個具備推送通知應(yīng)用的環(huán)節(jié)了,喝口水,開搞。

創(chuàng)建一個具備推送通知的應(yīng)用

首先,我們需要先對Xcode項目進(jìn)行一些設(shè)置,確保App ID和provisioning profile都被設(shè)置成良好的狀態(tài)。做開發(fā)嗎,

1.在Supporting Files文件夾下選中ProjectName-Info.plist,對右側(cè)視圖中的Bundle Identifier選項進(jìn)行修改,和你自己創(chuàng)建的App ID保持一致(形如:com.parseSampleApp)。

2.在左側(cè)的菜單中選中剛創(chuàng)建的project文件,在下面找到Build Settings然后搜索Code Signing Identity。

3.將對應(yīng)provisioning profile的所有的值全部設(shè)置好。

4.選擇左手邊Targets下面的項目名稱,再次找到Build Settings,來到Code Signing Identity區(qū)域,確保所有的值都和新的provisioning profile保持一致。

代碼環(huán)節(jié)

接下來就開始進(jìn)入編程模式了。我們需要對應(yīng)用程序代理(app delegate)進(jìn)行少量的修改,從而使得我們的應(yīng)用可以接受到推送通知。步驟如下:

1.注冊設(shè)備需要在app delegate的[application:didFinishLaunchingWithOptions:]方法中調(diào)用[application registerForRemoteNotificationTypes:]方法,代碼如下:

  1. - (BOOL)application:(UIApplication *)application 
  2.  didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
  3.     ... 
  4.     // Register for push notifications 
  5.     [application registerForRemoteNotificationTypes:  
  6.                                  UIRemoteNotificationTypeBadge | 
  7.                                  UIRemoteNotificationTypeAlert |              
  8.                                  UIRemoteNotificationTypeSound]; 
  9.     ... 

2.一旦成功,以上方法會在app delegate中執(zhí)行回調(diào)方法[application:didRegisterForRemoteNotificationsWithDeviceToken:] 。我們需要實現(xiàn)這個方法,用它來告知Parse我們的設(shè)備信息。代碼如下:

  1. - (void)application:(UIApplication *)application  
  2. didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)newDeviceToken 
  3.     [PFPush storeDeviceToken:newDeviceToken]; // Send parse the device token 
  4.     // Subscribe this user to the broadcast channel, ""  
  5.     [PFPush subscribeToChannelInBackground:@"" block:^(BOOL succeeded, NSError *error) { 
  6.         if (succeeded) { 
  7.             NSLog(@"Successfully subscribed to the broadcast channel."); 
  8.         } else { 
  9.             NSLog(@"Failed to subscribe to the broadcast channel."); 
  10.         } 
  11.     }]; 

3.廣播頻道(broadcast channel)用于同時聯(lián)系到所有用戶,所以很多時候開發(fā)者可能需要自己創(chuàng)建一些更精準(zhǔn)化的頻道。一旦推送通知被接受但是應(yīng)用不在前臺,就會被顯示在iOS推送中心。反之如果應(yīng)用剛好處于活動狀態(tài),則交于應(yīng)用去自行處理。具體我們可以在app delegate中實現(xiàn)[application:didReceiveRemoteNotification]方法。一下示例代碼只是簡單的將這一需求交由Parse去處理,Parse會創(chuàng)建一個模態(tài)警報顯示推送內(nèi)容。

  1. - (void)application:(UIApplication *)application  
  2. didReceiveRemoteNotification:(NSDictionary *)userInfo { 
  3.     [PFPush handlePush:userInfo]; 

好了,現(xiàn)在開始在你的iOS設(shè)備上運行一下,一切順利的話,就可以看到從用戶到推送通知之間的一條模態(tài)警報請求許可。

發(fā)送推送通知

從Parse website發(fā)送

Parse允許你從Parse website發(fā)送推送通知,API和SDK均可。找到Parse app,選擇Push Notifications標(biāo)簽,你可以在文本框里添加一條消息,然后廣播給所以用戶。你可以使用Parse web API通過發(fā)送一個POST請求來發(fā)送推送到任何頻道。以下示例是一條廣播通知,內(nèi)容是“Hello World”,使用curl進(jìn)行發(fā)送。

  1. curl -X POST "https://api./1/push" -H "Content-Type: application/json" \ 
  2. --data '{"key":"your_push_master_key", "channel":"", "type":"ios",\ 
  3. "data":{"alert":"Hello World!"}}' 

從應(yīng)用發(fā)送

從應(yīng)用發(fā)送需要開啟Parse app中的Client push enabled功能。實現(xiàn)從應(yīng)用發(fā)送推送通知的方式多種多樣,你可以在iOS API documentation中找到一切。

  1. // Broadcast "Hello World" 
  2. [PFPush sendPushMessageToChannelInBackground:@"" withMessage:@"Hello World!"]; 

好了。教程就到這里結(jié)束了,預(yù)祝大家開發(fā)順利。如果大家有好的應(yīng)用,可以聯(lián)系 @CSDN移動 或者發(fā)送郵件到 yangpf@csdn.net ,向我們進(jìn)行推薦。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    亚洲国产91精品视频| 欧美整片精品日韩综合| 日本在线高清精品人妻| 中文字幕乱子论一区二区三区| 成人精品视频一区二区在线观看| 亚洲中文字幕熟女丝袜久久| 日韩一区欧美二区国产| 亚洲精品成人午夜久久| 亚洲一区二区三区四区| 五月天六月激情联盟网| 99久久人妻精品免费一区| 久久热九九这里只有精品| 麻豆91成人国产在线观看| 亚洲男人的天堂色偷偷| 日本高清不卡一二三区| 丰满人妻熟妇乱又伦精另类视频| 国语对白刺激高潮在线视频| 日韩精品一区二区三区四区| 日本少妇中文字幕不卡视频| 久久夜色精品国产高清不卡| 日韩精品成区中文字幕| 日本免费一区二区三女| 亚洲欧洲日韩综合二区| 国产盗摄精品一区二区视频 | 天堂av一区一区一区| 超薄丝袜足一区二区三区| 激情视频在线视频在线视频| 亚洲专区一区中文字幕| 亚洲一区二区精品国产av| 国产内射一级二级三级| 国产成人免费高潮激情电| 九九九热视频最新在线| 美女激情免费在线观看| 亚洲综合日韩精品欧美综合区| 五月婷婷亚洲综合一区| 日韩精品福利在线观看| 亚洲中文字幕熟女丝袜久久| 亚洲国产另类久久精品| 日本精品理论在线观看| 国产av一区二区三区麻豆| 亚洲欧美日韩国产成人|