這是一篇編譯的文章,內(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:]方法,代碼如下:
2.一旦成功,以上方法會在app delegate中執(zhí)行回調(diào)方法[application:didRegisterForRemoteNotificationsWithDeviceToken:] 。我們需要實現(xiàn)這個方法,用它來告知Parse我們的設(shè)備信息。代碼如下:
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)容。
好了,現(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ā)送。
從應(yīng)用發(fā)送 從應(yīng)用發(fā)送需要開啟Parse app中的Client push enabled功能。實現(xiàn)從應(yīng)用發(fā)送推送通知的方式多種多樣,你可以在iOS API documentation中找到一切。
好了。教程就到這里結(jié)束了,預(yù)祝大家開發(fā)順利。如果大家有好的應(yīng)用,可以聯(lián)系 @CSDN移動 或者發(fā)送郵件到 yangpf@csdn.net ,向我們進(jìn)行推薦。
|
|