code小生 一個專注大前端領(lǐng)域的技術(shù)平臺公眾號回復(fù)
由來前段時間給APP增加推送功能,經(jīng)調(diào)研后接收到的結(jié)果是集成個推SDK,這從市場使用概率來看很不錯,畢竟個推、騰訊TPNS(原名信鴿)、極光、友盟等都是比較流行的廠家服務(wù),但對于開發(fā)者來講,更重要的是官方文檔是否易于閱讀?官方客服溝通起來是否便捷? ,一份優(yōu)秀的文檔說明可以節(jié)約很大的成本,相信各位開發(fā)者深有感觸吧。 問題產(chǎn)生個推Android集成官方文檔: 按照上述文檔集成完畢后,無論哪款機(jī)型,總是獲取不到廠商token,但clientId可以獲取到,這是問題一。 廠商token有如下兩種查看方式,這兩種方式并不在集成文檔里,而是在Android常見問題里,
從上面兩種方式中細(xì)心的你應(yīng)該注意到了細(xì)節(jié):廠商集成和保存廠商參數(shù)。 關(guān)于保存廠商參數(shù)這個很明確,在后臺就可以看到,目前只提供了主流手機(jī)廠商通道(華為、小米、OPPO、VIVO、海外通道)的配置,如圖: 我們需要做的就是在各個應(yīng)用市場找到我們的應(yīng)用(因?yàn)槲业膽?yīng)用是已經(jīng)上架的,如果是新創(chuàng)建,那么建議在創(chuàng)建的時候就打開)并為其打開推送服務(wù)就可以了;需要注意的是,華為需要多一步:在應(yīng)用的簽名信息里配置SHA256的值(如何獲取已經(jīng)上架應(yīng)用的SHA256的值,華為有給教程哈,很nice)。 這一步還是獲取不到廠商token,由此帶來的體驗(yàn)是:
這里又有一個問題,什么是透傳消息?該如何理解透傳?
再前面配置廠商參數(shù)的時候我也注意到oppo還是vivo在打開推送服務(wù)的時候,會有透傳消息的解釋,當(dāng)時我就感覺后端對我的引導(dǎo)有偏差,經(jīng)過和技術(shù)支持溝通,確定的結(jié)果如下:
這下就明確了,在這之前的做法是一直糾結(jié)為什么離線收不到透傳消息,因?yàn)楹蠖私o我的錯誤引導(dǎo)是透傳應(yīng)該是離線的時候收到的,它有穿透之意,比通知更高級,這就是我為什么在前面要強(qiáng)調(diào)對透傳的理解。 進(jìn)一步根據(jù)技術(shù)支持的反饋,通知的顯示和點(diǎn)擊是不需要客戶端做處理的,只需要客戶端嚴(yán)格按照文檔要求配置icon和文本、服務(wù)端在發(fā)送通知的時候指定跳轉(zhuǎn)頁面即可,如果不指定跳轉(zhuǎn)頁面默認(rèn)跳轉(zhuǎn)APP首頁。而透傳消息的顯示需要客戶端做處理,也就是顯示通知欄的操作,但點(diǎn)擊跳轉(zhuǎn)工作同樣不需要客戶端去做。 探尋解決方案到這里,基本的思路和邏輯清楚了,但依然有兩個問題未解決:
這兩個問題都是APP離線時才會觸發(fā),其實(shí)這兩個問題歸根結(jié)底還是同一個問題,就是廠商未集成。那么問題來了,我翻遍了個推Android集成文檔 也就是本文開始給出的鏈接,但就是找不到集成廠商的步驟,接下來就入坑了,我在各個應(yīng)用市場翻閱了推送服務(wù)相關(guān)文檔、檢查了各個推送服務(wù)的配置開關(guān)、嘗試release測試、換主流手機(jī)測試、詢問官方技術(shù)支持,但都一無所獲,技術(shù)支持最多的一句回復(fù)就是讓我看這個: 這個截圖其實(shí)就是Android常見問題中的第四個問題。 但這不是扯呢么,問題我知道在哪,我就是想知道廠商集成在哪里?我要文檔或者鏈接,最后實(shí)在不行了,準(zhǔn)備做最后的決戰(zhàn),直接@個推官方技術(shù)支持直接要鏈接,結(jié)果給我扔出來一個從未謀面的鏈接: 我們來看下官方文檔的整體分布: Android和多廠商居然是平級關(guān)系,更可恨的是集成多廠商之前必須先集成Android個推SDK,也就是我們前面做過的工作。那么接下來就集成唄,照著文檔完畢后在控制臺果然看到了夢寐以求的 解決問題后,跟官方技術(shù)支持提供了建議:
總結(jié)這次之所以爬坑最主要的失誤有兩個;
額外提及一點(diǎn),在集成多廠商的時候,碰到關(guān)于服務(wù)端配置消息(通知和透傳消息)點(diǎn)擊事件的 圖中紅色部分的配置方式正式Android集成文檔里提及的方式,而這里又不建議使用,這不是坑人嘛!我為了安全起見,根據(jù)官方提供的生成方式,在安卓端生成后發(fā)給后端使用,各位如遇到這個問題希望這里能幫到你,本文已結(jié)束。
|
|