【问题标题】:Push notification from Mixpanel dashboard to Android Cordova app从 Mixpanel 仪表板向 Android Cordova 应用推送通知
【发布时间】:2016-05-19 22:15:37
【问题描述】:

我正在使用 phonegap-plugin-push 成功地将 Mixpanel 仪表板中的推送通知发送到 iOS 和 Android 设备上的 Cordova 应用程序。

但是,在默认字段中输入的标题和正文值仅显示在 iOS 设备上。

为了让通知出现在 Android 设备上,我目前需要在 Mixpanels“自定义数据”中包含一个自定义负载:

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

对于任何使用 Mixpanel 发送通知的非技术人员来说,这都是一个容易出错的步骤。

有人知道更简单的方法吗?

【问题讨论】:

    标签: android cordova push-notification mixpanel


    【解决方案1】:

    如果它对任何人有帮助,这就是我解决问题的方法 在phonegap-plugin-push

    你需要修改两个文件

    1. GCMIntentService.java

      private String normalizeKey(String key) {
      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";

    【讨论】:

      【解决方案2】:

      这里的简短回答是,Cordova/Phonegap 和类似的第三方框架并未针对 Mixpanel 功能进行 100% 优化(尽管它们工作得非常好),因此您需要为 iOS 和 Android 生成单独的推送通知在您的 Mixpanel 项目中。

      提供上下文,无论应用程序如何,所有 iOS 推送都使用相同的密钥(警报、徽章、声音)向 APN 传递 JSON 有效负载。然而,Android 应用程序处理传入 GCM 推送的密钥完全取决于 GCM 接收器是如何建立的,问题就在这里。

      Mixpanel 的 Android SDK 初始化推送并使用特定于 Mixpanel 消息的 GCM 接收器,并完全期望其自定义键(mp_message、mp_title)来呈现通知。 webapp 重新格式化消息输入以满足这些关键要求 (http://bit.ly/1OGgU1y)

      但是,如您所见,Phonegap GCM 接收器需要不同的键。我建议参考 phonegap github 页面,以了解更多有关预期推送格式和行为的上下文(看起来他们期望“标题”和“消息”作为键):http://bit.ly/1KDScye

      不幸的是,这意味着 Android 应用程序并未针对接收默认的、Web 应用程序生成的 Mixpanel 推送进行优化,尽管您的 iOS 应用程序是。 Mixpanel 的 SDK 旨在最大限度地提高该平台的功能,但不能保证 Cordova 或类似的 JS 框架能够 100% 翻译。

      总结一下 - 在 Mixpanel 推送编辑器中创建消息将发送到 iOS,但对于 Android,您需要在单独的通知中使用自定义 JSON 有效负载,包括与 phonegap GCM 接收器兼容的键。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-24
        • 1970-01-01
        • 2017-02-10
        • 1970-01-01
        • 1970-01-01
        • 2015-03-02
        相关资源
        最近更新 更多