C2DM / PhoneGap плагин? - PullRequest
       6

C2DM / PhoneGap плагин?

3 голосов
/ 16 января 2012

Я хотел бы добавить Push-сообщения в мое приложение Phonegap для Android и считаю, что C2DM - это лучший способ сделать эту работу - не могли бы вы указать мне правильное направление, чтобы настроить это?Есть ли плагин или учебное пособие, чтобы помочь с этим?

Кроме того - нужен ли мне плагин - можно ли добавить C2dm в мое приложение традиционным способом Android, не испортив настройки телефонного промежутка?

Ответы [ 2 ]

4 голосов
/ 20 января 2012

Да, C2DM - это решение Android Push.На https://github.com/awysocki/C2DM-PhoneGap вы можете найти пример реализации.

Файлы в пространстве имен com.google должны быть включены без изменений, они из сеанса "Обзор сеанса Google IO: Android + App Engine:«Комбинация мечты разработчика» », см. http://bradabrams.com/2011/05/google-io-session-overview-android-app-engine-a-developers-dream-combination/

Итак, вы должны выполнить следующие шаги:

  1. Добавить 3 класса com.google в свой проект
  2. Создайте класс с именем C2DMReceiver (соглашение об именах), который наследуется от C2DMBaseReceiver и реализуйте необходимые абстрактные события
  3. Установите AndroidManifest.xml

AndroidManifest выглядит как

<!-- set up an own permission to secure our C2DM mesages -->
<permission android:name="your.namespace.permission.C2D_MESSAGE"
            android:protectionLevel="signature" />

<!-- List of permission -->
<uses-permission android:name="your.namespace.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

<application ..>

    <!-- Your implementation of the class C2DMReceiver, base class is Googles C2DMBaseReceiver -->
    <service android:name=".C2DMReceiver" />

    <!-- Googles broadcast receiver, it delegates to your.namespace.C2DMReceiver -->
    <receiver
            android:name="com.google.android.c2dm.C2DMBroadcastReceiver"
            android:permission="com.google.android.c2dm.permission.SEND">
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <category android:name="your.namespace" />
        </intent-filter>
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
            <category android:name="your.namespace" />
        </intent-filter>
    </receiver>
</application>

Если вы получаете на эмуляторе ошибку «Уведомления E / CSE (401): Ошибка регистрации ACCOUNT_MISSING», вам необходимо добавить учетную запись Google в ваш эмулятор.

Для второго вопроса: это зависит от того, что вы хотите сделать.Когда вы получаете сообщение и хотите просто отобразить уведомление, чтобы пользователь мог запустить ваше приложение, вам не нужен плагин Phonegap.В этом случае вы можете решить все в Java.

1 голос
/ 05 февраля 2014

В случае, если вы получите этот ответ, обратите внимание, что C2DM устарел, и теперь вам нужно использовать GCM.

Кроме того, существует официальный плагин PhoneGap, поддерживающий уведомления как для Android, так и для iPhone.Проверьте PushPlugin на https://github.com/phonegap-build/PushPlugin

...