2012-01-16 73 views
3

我想將推送消息添加到我的Phonegap Android應用程序,並相信C2DM是使這項工作成功的最好方式 - 可以指出我設置這個方向的正確方向嗎? 有沒有插件或教程來幫助這個?C2DM/Phonegap插件?

另外 - 我真的需要一個插件 - 是否有可能添加C2dm到我的應用程序傳統的Android方式,而不會搞亂我的phonegap設置?

回答

4

是的,C2DM是Android Push解決方案。在https://github.com/awysocki/C2DM-PhoneGap你可以找到一個示例實現。

在com.google命名空間已被列入不變的文件,他們是從會話「谷歌IO會議概述:安卓+應用程序引擎:開發者的夢幻組合」,見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解決所有問題。