關於ios 推送功能的終極解決

2021-08-27 01:39:55 字數 1032 閱讀 2575

至於推送功能的原理什麼的我就不說了 網上關於推送的資料很多 不過有很多一部分都寫的不知所以然 不過原理還是可以弄明白的

中文翻譯

我第一次就是看的英文原帖 中文翻譯的也很好 不過感覺作者沒有親自試過 我可是實現了哦 。

這裡我說我認為比較關鍵的地方

1生成鑰匙串請求問題 在你做乙個新的帶推送的功能的應用的時候最好重新生成一次鑰匙串請求 省的亂

在你生成鑰匙串請求的時候 那個crs檔案一定要留著 還有更重要的是你在生成這個鑰匙串請求的時候 在鑰匙串裡邊會出來一對金鑰 這個一定要注意那一對是剛剛出現的

帖子裡邊說的匯出那個.p12檔案就是指剛才那對金鑰的私鑰的匯出檔案

3 apns位址

這兩個是有區別的 當然證書也是

4 順序 我就是被這個順序搞的鬱悶了

5 真機測試

開發的時候一般我們都是用xcode直接灌到裝置裡 這個時候development證書是可以推送成功的 但是production證書卻推送不了

不過蘋果給我們提供了ad hoc測試方式 它使用的是發布證書 如果你不知道ad hoc模式可以搜一下 很簡單的

這裡有乙個關鍵的地方 development和production得到的token的不一樣的

使用ad hoc方式裝到裝置上得到的就是production token 所以你在用ad hoc方式測試的要使用production token

如果使用ad hoc方式測試沒問題 這個發布也就沒問題了

還有乙個問題就是token會更新 這個在官方文件中有提到 就是在一定的時間或者刷機某些不經常出現的情況下 蘋果公司的伺服器可能會更新裝置的token

這裡你需要的乙個機制來解決這個問題

我的解決辦法是更新應用版本 然後定期刪掉伺服器就時間比較久的token

這樣肯定會造成部分沒有更新使用者收不到推送的問題 不過只要他即時更新就沒問題了 這是乙個懶辦法

因為我的應用只在程式第一次開啟的時候上傳一次以後就不傳了 這樣可以減少服務端的負荷

不過你是乙個推送很頻繁應用那就頻繁獲取頻繁的更新服務端記錄 這個就根據情況來了

遮蔽html退回功能 終極解決

以前有說過如何遮蔽html退回功能,即採用window.location.replace 方法,但是這種方法存在缺陷 如果原視窗不是全屏開啟,則replace後也無法全屏,現解決如下 1 使用window.open load.html openstr left 0,top 0,no,location...

iOS蘋果推送功能實現步驟

3.開啟控制台程式,使用openssl 將cer.p12及key.p12轉成cer.pem和key.pem 命令如下 cd desktop openssl pkcs12 clcerts nokeys out cer.pem in cer.p12 生成 cer.pem檔案 openssl pkcs12...

關於iOS開發 極光推送

極光推送 1 因為換了新電腦,之前的證書都沒有匯入現有的電腦,專案重寫之後測試一下推送,發現推送成功,但是本地卻沒有收到推送訊息 檢視一下列印日誌發現如下錯誤 not get devicetoken yet.maybe your certificate not configured apns?or ...