2016-02-09 26 views
1

使用phonegap-plugin-push,我成功地將MixPanel儀表板中的推送通知發送到iOS和Android設備上的Cordova應用程序。從Mixpanel儀表板向Android Cordova應用程序推送通知

但是,默認字段中輸入的標題和正文值僅出現在iOS設備上。

對於通知出現在Android設備上,目前我需要在Mixpanels「自定義數據」的自定義負載:

{ 
"title":"Title for Android only", 
"body":"Content for Android only" 
} 

這是任何非技術性的使用Mixpanel發送一個容易出錯的步驟通知。

有人知道一個更簡單的方法來做到這一點?

回答

4

這裏的簡短答案是Cordova/Phonegap和類似的第三方框架並未針對Mixpanel功能進行100%優化(儘管它們工作得非常好),因此您需要爲iOS和iOS生成單獨的推送通知Android在您的Mixpanel項目中。

提供上下文,無論應用程序使用相同的密鑰來傳遞它們的消息(警報,徽章,聲音),所有iOS都會推送JSON有效負載到APN。然而,Android應用程序處理傳入的GCM按鍵的關鍵完全取決於GCM接收器的建立方式,這裏存在問題。

Mixpanel的Android SDK初始化推送並使用特定於Mixpanel消息的GCM接收器,並且完全期望其自定義鍵(mp_message,mp_title)以呈現通知。 webapp重新格式化消息輸入以滿足這些關鍵要求(http://bit.ly/1OGgU1y

但是,Phonegap GCM接收器需要您注意到的不同密鑰。我建議引用phonegap github頁面,以便獲得更多的預期推送格式和行爲的內容(看起來他們期望「title」和「message」作爲鍵):http://bit.ly/1KDScye

不幸的是,這意味着什麼是Android應用程序沒有優化,以接收默認的,網頁應用程序生成的Mixpanel推送,雖然你的iOS是。 Mixpanel的SDK旨在最大限度地發揮該平臺的功能,並且不保證Cordova或類似的JS框架將100%翻譯。

所以得出結論 - 在Mixpanel推送編輯器中創建消息將發送到iOS,但對於Android,您需要在單獨通知中使用自定義JSON有效內容,包括phonegap GCM接收器兼容的密鑰。

0

如果其對任何人的幫助,這是我如何解決了這個問題 在phonegap-plugin-push

您需要修改兩個文件

  1. GCMIntentService.java

    私人字符串normalizeKey(String鍵) (key.equals(BODY)|| key.equals(ALERT)|| key.equals(MP_MESSAGE)|| key.equals(GCM_NOTIFICATION_BODY)){//添加MP_MESSAGE

  2. PushConstants。java

    public static final String MP_MESSAGE =「mp_message」;