iOS 推送通知

2021-09-30 11:47:36 字數 3066 閱讀 8910

作為提供者為程式開發和部署推送通知,必須通過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位址並...