2012-01-16 4 views
3

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

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

ответ

4

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

Файлы в com.google имен должны быть включены без изменений, они с сессии «Google IO Session Обзор: 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 Notifications (401): Ошибка регистрации ACCOUNT_MISSING", у вас есть добавить аккаунт Google в свой эмулятор.

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

1

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

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

Смежные вопросы