簡體   English   中英

將通知從Mixpanel儀表板推送到Android Cordova應用

[英]Push notification from Mixpanel dashboard to Android Cordova app

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

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

為了使通知顯示在Android設備上,我目前需要在Mixpanels“自定義數據”中包含自定義有效負載:

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

對於任何使用Mixpanel發送通知的非技術人員,這都是容易出錯的步驟。

有人知道這樣做更簡單的方法嗎?

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

提供上下文,所有iOS推送(無論應用程序是什么)都使用相同的鍵來傳遞其消息(警報,徽章,聲音)給APN傳遞JSON負載。 但是,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應用程序並未進行優化以接收默認的,由Web應用程序生成的Mixpanel推送,盡管您的iOS設備是。 Mixpanel的SDK旨在最大化該平台的功能,並且不能保證Cordova或類似的JS框架可以100%轉換。

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

如果對任何人有幫助,這就是我解決了phonegap-plugin-push問題的方法

您需要修改兩個文件

  1. GCMIntentService.java

    私人字串normalizeKey(字串鍵){
    if(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”;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM