flutter中接入極光推送遇到的坑

本文記錄了個人在接入極光推送時遇到的坑,特別是接入華為廠商通道推送遇到的坑,如果你正在接入flutter極光推送,希望本篇文章能幫助到你。


首先,flutter版本的極光推送,我最先開始是接入的最新版本的,但是后面問了極光客服,他們說flutter插件目前統(tǒng)一用這個分支https://github.com/jpush/jpush-flutter-plugin/tree/dev-2.x

好吧,咱也不知道為什么,但是聽人勸吃飽飯,改用了這個版本。按照官方文檔初始化后,開始iOS的配置。iOS以前需要使用推送證書,現(xiàn)在的話,推薦使用Token Authentication

Token Authentication是 APNs 新推出的推送鑒權(quán)方式。它相對老的證書鑒權(quán)方式有如下優(yōu)勢:

1.同一個賬戶下所有 App 無論是測試 App 還是正式版 App,都能使用同一個 key 來發(fā)推送消息和 voice-over-Internet Protocol (VoIP) 消息,不再需要為每個 App 生成一個證書。

2.生成的 Auth Key 不再有過期時間,無需像證書那樣每年需要重新生成一次。

3.生成過程簡單,不需要繁瑣、易錯的證書導(dǎo)出操作

集成相關(guān)步驟可以參考這篇文章:http://m.itdecent.cn/p/704673bb3e50

然后到極光后臺配置iOS,選擇鑒權(quán)方式Token Authentication,把下載的Token Authentication傳上去,其他的相關(guān)參數(shù)一填寫,iOS就配置完成。

重點來了,iOS的推送測試,只能真機測試,不能使用模擬器。


下面開始安卓的廠商通道推送,安卓如果不配置廠商通道推送,APP未打開的情況下,是收不到推送的。第一次配置,我參考了flutter 極光推送華為廠商通道推送_極光通道與廠商通道-CSDN博客,這篇文章,如果你也參考了這篇文章,那么接下來,你可能會遇到和我一樣的問題。

這里集成步驟就不過多描述了,按照上面的文章集成后,我遇到的第一個問題,又是沒有使用真機測試,而且你測試對應(yīng)的廠商推送,需要使用對應(yīng)廠商的手機,如測試華為的推送需要使用華為的手機。

當(dāng)我開始測試的時候,不用說,沒有成功,于是我開始找問題,首先我懷疑,在app/build.gradle里,這個版本號我沒有對應(yīng):


app/build.gradle這里說的版本號和對應(yīng)的JPush版本號相同,我不知道這個和對應(yīng)的版本是否相同,然后咨詢極光技術(shù)支持,在日志里找到了對應(yīng)的版本。

好了 ,把所有的都改成了對應(yīng)的版本后,小米成功了,然而華為沒有成功。查看日志,提示:not support huawei,把日志提交給極光技術(shù)支持,他說打印的日志不全,建議我換個手機測試。最先開始使用的是華為nova9真機,然后我換成了華為P40,這次終于有問題出現(xiàn)了, 《錯誤碼:907135000》:錯誤碼:907135000 · BDS技術(shù)支持組。

按照這個文檔給出的說法,我注意到,我按照參考的文章flutter 極光推送華為廠商通道推送_極光通道與廠商通道-CSDN博客里集成,是把agconnect-services.json文件拖到項目下面的 android/app/src 目錄下,而907135000這個錯誤,是說我需要把agconnect-services.json放置到主工程build.gradle同級的目錄中,于是修改后:

再次運行,好的,報錯6003,錯誤碼:6003 · BDS技術(shù)支持組,按照這里面說的,就是我的SHA256有問題。多次檢查我的SHA256,沒有出錯啊,問題在哪里呢?重新配置華為的參數(shù),也不行。我的signingConfigs如下:


我甚至把release下的SHA256和config下的SHA256都填寫到了華為的后臺,還是不行。

想了半天,debug我沒有配置,會不會有影響,一查果然,debug沒有配置,系統(tǒng)會使用默認的配置,這個時候,你可以配置debug使用和release一樣的配置?;蛘吣憧梢园裠ebug的SHA256填寫到華為后臺去。


查看debug下默認的SHA256的方法:

1.先打包debug.apk,把debug.apk文件解壓,在解壓后的文件夾中,找到并打開名為 `META-INF` 的文件夾。在 `META-INF` 文件夾中,你可以查看其中的文件。其中,SHA256 哈希值通常位于名為 `CERT.SF` 或 `CERT.RSA` 的文件中。

2.在終端或命令提示符窗口中,導(dǎo)航到?`META-INF`文件所在的目錄。

3.執(zhí)行命令:??keytool -printcert -file CERT.RSA? ?

如下圖所示:

最后,填寫好了debug的SHA256后,你可能還不會馬上成功,你需要等個10-30分鐘,然后一定要刷新華為官網(wǎng)的頁面,重新下載并導(dǎo)入agconnect-services.json。

重新運行項目,如果控制臺出現(xiàn)下圖所示,就說明配置成功了。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容