作為提供者為程式開發和部署推送通知,必須通過ios developer program portal獲得ssl證書。每個證書限用於乙個程式,使用程式的bundle id作為標識。證書有兩種用途的:一種是針對sandbox(用於開發和測試),另外一種針對發布產品。這兩種執行環境擁有為各自指定的ip位址並且需要不同的證書。還必須為兩種不同的環境獲取各自的provisioning profiles。
apns提供了兩項基本的服務:訊息推送和反饋服務。
下面是乙個完整推送流程圖
從上圖,我們可以看到。
首先是應用程式註冊訊息推送。
ios跟apns server要devicetoken。應用程式接受devicetoken。
應用程式將devicetoken傳送給push服務端程式(provider)。
服務端程式向apns服務傳送訊息。
apns服務將訊息傳送給iphone應用程式。
無論是iphone客戶端跟apns,還是provider和apns都需要通過證書進行連線的:
圖中,1. provider是指某個iphone軟體的push伺服器,是我們將要開發的伺服器。
上圖可以分為三個階段:
第一階段:推送伺服器(provider)把要傳送的訊息、目的iphone的標識打包,發給apns;
第二階段:apns在自身的已註冊push服務的iphone列表中,查詢有相應標識的iphone,並把訊息發到iphone;
第三階段:iphone把發來的訊息傳遞給相應的應用程式,並且按照設定彈出push通知。
4. 此時會彈出一視窗,點「continue」
5. 彈出證書上傳頁面,證書選擇事先做好的「certificatesigningrequest.certsigningrequest」,然後點「generate」按鈕;
6. 接下來會有「your apns ssl certificate has been generated.」提示,點「continue」:
11. 選中push services證書,右鍵匯出證書為個人資訊交換(.p12)格式檔案,這裡我命名為「aps_development.p12」,點儲存時會彈出乙個密碼設定視窗,可留空不填:
12. 在終端執行下面的命令,把剛才匯出的個人資訊交換(.p12)格式檔案加密轉換成推送伺服器的推送證書:
上面的命令在執行時有4處是需要輸入密碼的,其中1和2直接回車,3必須設定乙個key如「push」,在4處輸入3設定的key 「push」;
命令執行完後生成的「iostest_push_dev.pem」就是我們推送伺服器要使用的推送證書;
經過以上步驟的配置,已經完成了開發推送功能所需要的條件了,接下來將會新建乙個ios應用來體驗完成推送功能,在ios應用需要實現的介面。
為使應用能支援推送功能,我們的專案配置時要注意:
測試需要用真機,模擬器不支援。
[cpp]view plain
copy
}
return yes;
}
2. 接收從蘋果伺服器返回的唯一的裝置token,該token是推送伺服器傳送推送訊息的依據,所以需要傳送回推送伺服器儲存
[html]view plain
copy
nsstring* token = [nsstring stringwithformat:@"%@",devicetoken];
nslog(@"apns -> 生成的devtoken:%@", token);
//把devicetoken傳送到我們的推送伺服器
devicesender* sender = [[[devicesender alloc]initwithdelegate:self ]autorelease];
[sender senddevicetopushserver:token ];
}
3.接收註冊推送通知功能時出現的錯誤,並做相關處理:
[html]view plain
copy
nslog(@"apns -> 註冊推送功能時發生錯誤, 錯誤資訊:\n %@", err);
}
4. 接收到推送訊息,解析處理
[cpp]view plain
copy
}
iOS推送通知
此通知非彼通知。nsnotification是抽象的,看不見的,但是可以監聽,屬於觀察者模式的一種設計模式。推送通知是可見的,能用肉眼看見的,是真正的和使用者打交道的通知。推送通知分為兩種 1 本地推送通知 2 遠端推送通知 不在前台有兩種情況 一種是程式退出到後台,另一種是程式被殺死。不管是被殺死...
本地通知和推送通知 iOS開發
一 通知的型別 1.橫幅 banner 橫幅通知是在ios5中出現的新特性,是顯示在螢幕頂部的橫條,幾秒鐘後會自動消失。一條橫幅通知會顯示程式的小圖示 低分屏下顯示29 29的圖示,高分屏顯示58 58的圖示 程式的名字和通知的內容。小圖示可以幫助使用者一眼就看清楚是哪乙個應用程式在提醒他們。2.提...
iOS推送通知的實現步驟
作為提供者為程式開發和部署推送通知,必須通過ios developer program portal獲得ssl證書。每個證書限用於乙個程式,使用程式的bundle id作為標識。證書有兩種用途的 一種是針對sandbox 用於開發和測試 另外一種針對發布產品。這兩種執行環境擁有為各自指定的ip位址並...