信鴿Android推送解決問題記錄--無法跳轉到指定頁面

之前收到客服反饋的問題:華爲手機,點擊通知消息後,無法跳轉到指定頁面。當時同事定位的問題是廠商通道,因爲忙於其他需求,給出的解決辦法是暫時關掉廠商推送。最近有時間了,開始解決這個問題。

集成信鴿推送的時候,可以選擇集成小米、華爲、魅族這三家的廠商推送,按照文檔集成後,使用相應廠商的設備運行時,在logcat中,以xinge爲tag可以看到很多信息,如果看到other push token不爲空的話,說明廠商通道已經註冊成功了。這個時候,通過信鴿控制檯發送消息,即使app進程被殺掉,也是可以收到推送的。但是可能出於某些奇奇怪怪的原因,other push token爲空,說明廠商通道註冊失敗,這時會走信鴿推送,當App進程被殺掉後,能否收到推送,就看天意了。

之前使用的信鴿SDK版本是3.2.2,這次既然要搞,自然要升級了,果斷升級至最新的4.2.0-beta版,4+版本相比於3+版本,一個區別是支持廠商通道動態靈活加載。升級完後,發現個很尷尬的問題,廠商通道註冊成功率太低了,基本上註冊成功後,再次註冊,大概率失敗,搞了幾天後,決定降至3.2.6。

現在廠商通道註冊成功了,爲什麼點擊後無法跳轉呢?信鴿推送有兩種方式下發信息。

第一種方式是通過自定義的key-value,控制檯設置如圖:對應的,在app端,要使用XGPushManager.onActivityStarted(Context context)方式獲取這些信息。這種方式,只適用於非廠商通道。如果使用的是廠商通道,這種方式是獲取不到值的。

第二種方式是使用Intent方式,信鴿開發文檔中明確指出,使用廠商通道的時候,必須使用這種方式來跳轉並獲取參數。鏈接如下:http://docs.developer.qq.com/xg/android_access/android_faq.html#消息點擊事件以及跳轉頁面方法,在控制檯中設置如圖:

相應的,在app端,要使用文檔中推薦的getIntent()方式獲取相應參數。

所以,爲了保證在小米、華爲、魅族手機上可以使用廠商通道,而在其他品牌手機上使用信鴿推送,我們最後保留了兩套處理邏輯,先使用XGPushManager.onActivityStarted(Context context)方法獲取自定義的key-value信息,如果爲空時,再嘗試獲取Intent方式傳的參數。這樣,不論最後使用的是廠商通道還是信鴿自己的推送,都能獲取到參數並跳轉。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章