uniapp官方推送文檔:UniPush使用指南 - DCloud問答
1 unipush其實就是dcloud幫妳集成了個推的sdk到uniapp內部,本質是dcloud幫妳做了二次封裝,妳不需要去個推官網集成App端的推送sdk(服務端需要去個推集成服務端的sdk,但有個大方向就是服務端壹定要使用 透傳模板 ),妳也不需要去個推申請賬號,而是直接用dcloud的賬號就好了。
2 在線消息、離線消息、透傳消息的區別
在線消息(推送):指App在前臺或App剛退到後臺但時間不長還沒有被殺死進程的狀態
離線消息(推送):指App根本就沒有打開或App打開了又被殺死了,離線消息本質是手機廠商自己實現的手機系統級的長連接
透傳消息:也叫應用內消息或自定義消息,本質是個推自己實現的長連接
1 華為手機必須用自有證書雲打包才能實現離線推送
2 小米手機用雲打包或自定義調試基座打包都能實現離線推送
3 oppo和vivo如果要實現離線推送,必須先上架oppo和vivo的官方應用商店才能實現離線推送
因為華為手機必須用自有證書才能實現離線推送的關系,其他小米手機,ov也就跟著統壹使用自有證書來打包了
首先證書裏存儲的是壹些用於表明開發者身份的信息,就是類似壹個身份證的東西,為了證明妳是妳,對於App來說就是給App簽名用的,壹個證書可以簽名多個App。
自有證書,字面意思,就是自己擁有的證書,對於uniapp來說,如果妳的應用安全性不高或者根本用不到推送功能,那麽妳可以直接選擇用dcloud的公***測試證書來打包。
只要妳需要實現華為手機的離線消息推送,那麽妳就壹定需要制作壹個自有證書,只要制作壹個,就可以壹勞永逸。
如果妳需要支持華為手機的離線推送,那麽必須制作壹個簽名證書,壹般情況下,妳只要做推送功能的,不支持華為說不過去,所以別管那麽多直接做壹個證書就完事。
Android平臺簽名證書(.keystore)生成指南 - DCloud問答
/article/35777
使用Windows電腦制作自有證書的過程中,註意記錄好妳的證書別名,證書私鑰密碼,因為打包的時候需要填寫。
根據上面制作證書的文檔,妳可以獲取到形如下面樣子的兩個值
sha1是需要填寫在dcloud開發者後臺的,sha256是需要填寫在華為開放平臺後臺
SHA1:
29:13:A2:70:8A:97:EE:72:12:8B:61:5A:68:B0:59:43:87:58:AC:42
SHA256:
16:EC:B2:F1:DC:14:BD:2B:4E:E2:4F:03:45:74:17:84:83:D4:B7:58:96:B5:CE:86:46:E9:37:45:07:DD:BC:A8
在華為後臺配置sha256的時候,復制到輸入框後壹定要點擊右側的藍色小對勾,不然保存不上。
小米的配置沒啥可說的,直接創建應用就可以了,然後啟用壹下推送,註意所有包名要寫壹致,把appid等相關信息復制到dcloud後臺,小米的配置就完事了。
下面是華為:
華為創建應用的時候包名也要統壹。
數據存儲位置選中國就可以,sha256這裏就填妳自有證書獲取到的sha256
如果找不到sha256,可能妳需要點到我的項目而不是我的應用。
然後登錄dcloud開發者後臺
註意這裏的pkgName就是包名的意思,這裏把華為小米的appid等信息分別填入保存。
這裏的安卓應用簽名就是妳自有證書的sha1值,如果妳的sha1值和下面那行寫的壹樣,那麽恭喜妳寫錯了,iOS BundleId就是iOS的包名,建議安卓和iOS包名統壹。
以上都配置完畢後,用透傳消息來測試離線推送。
除了intent格式需要註意,其他都隨便寫字符串就可以。
intent:#Intent;action=android.intent.action.oppopush;launchFlags=0x14000000;component=妳的包名/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title=測試標題;S.content=測試內容;S.payload=test;end
把“妳的包名”四個字改成妳的包名,其他不要改。
然後妳把打包好的App安裝到手機上,不出意外的話,妳就會收到推送了。