2016-02-09 1 views
1

Я успешно отправляю Push-уведомления с панели инструментов Mixpanel в приложение Cordova на устройствах iOS и Android, используя phonegap-plugin-push.Push-уведомление с панели инструментов Mixpanel на Android-приложение Cordova app

Однако значения заголовка и тела, введенные в поля по умолчанию, отображаются только на устройствах iOS.

Для уведомления появится на Android устройствах, я в настоящее время необходимо включить пользовательский полезную нагрузку в Mixpanels «Пользовательские данные»:

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

Это склонными шаг ошибки для любого нетехнических использования Mixpanel для отправки уведомления.

Знает ли кто-нибудь более простой способ сделать это?

ответ

4

Короткий ответ заключается в том, что Cordova/Phonegap и аналогичные сторонние фреймворки не оптимизированы на 100% для функциональности Mixpanel (хотя они работают очень хорошо), и поэтому вам нужно будет генерировать отдельные push-уведомления для iOS и Android в вашем проекте Mixpanel.

Предоставляя контекст, все приложения iOS, независимо от приложения, доставляют полезную нагрузку JSON в APN, используя те же клавиши для доставки своих сообщений (предупреждение, значок, звук). Тем не менее, ключи, которые Android-приложения обрабатывают для входящих импульсов GCM, полностью зависят от того, как установлен приемник GCM, и в этом проблема.

Android SDK от Mixpanel инициализирует нажатие и использует приемник GCM, который является специфичным для сообщений Mixpanel, и полностью ожидает его пользовательских ключей (mp_message, mp_title), чтобы визуализировать уведомление. Webapp переформатирует ввод сообщения для удовлетворения этих ключевых требований (http://bit.ly/1OGgU1y)

Однако приемник Phonegap GCM ожидает, что вы заметили разные клавиши. Я бы рекомендовал ссылаться на страницу gigub phonegap, чтобы получить больше контекста в ожидаемом формате и поведении (выглядит так, как они ожидают «название» и «сообщение» в качестве ключей): http://bit.ly/1KDScye

К сожалению, что это означает заключается в том, что приложение Android не оптимизировано для получения заданных по умолчанию, созданных с помощью веб-приложений Mixpanel, хотя ваш iOS-это один. SDK от Mixpanel предназначены для максимизации возможностей для этой платформы, и не гарантируется, что Cordova или аналогичные структуры JS будут переведены на 100%.

Итак, чтобы заключить - создание сообщения в редакторе push-плееров Mixpanel отправит iOS, но для Android вам понадобится использовать пользовательскую полезную нагрузку JSON в отдельном уведомлении, включая ключи, с которыми совместим приемник GCG.

0

Если его помощь кому-либо это, как я решил проблему в phonegap-plugin-push

вам нужно изменить два файла

  1. GCMIntentService.java

    частная строка normalizeKey (ключ String) {
    если (ключ.элементы (BODY) || ключ.элементы (ALERT) || ключ.равнения (MP_MESSAGE) || ключ.элементы (GCM_NOTIFICATION_BODY)) {// добавлено MP_MESSAGE

  2. PushConstants.java

    public static final String MP_MESSAGE = "mp_message";