C2DM/Phonegap 插件? [英] C2DM / Phonegap plugin?
问题描述
我想将推送消息添加到我的 Phonegap Android 应用程序中,并相信 C2DM 是完成这项工作的最佳方式 - 可以为我指出正确的设置方向吗?有没有插件或教程可以帮助解决这个问题?
I would like to add Push messaging to my Phonegap Android App and believe that C2DM is the waybest way to make this work - could point me in the right direction to set this up? Is there a plugin or tutorial to help with this?
另外 - 我真的需要一个插件吗 - 是否可以以传统的 Android 方式将 C2dm 添加到我的应用程序中而不会弄乱我的 phonegap 设置?
Also - do I actually need a plugin - is it possible to add C2dm to my app the traditional Android way without messing up my phonegap setup?
推荐答案
是的,C2DM 是 Android Push 解决方案.在 https://github.com/awysocki/C2DM-PhoneGap 上,您可以找到示例实现.
Yes, C2DM is the Android Push solution. On https://github.com/awysocki/C2DM-PhoneGap you can find an example implementation.
com.google 命名空间中的文件必须保持不变,它们来自会话Google IO 会话概述:Android + App Engine:开发者的梦想组合",参见 http://bradabrams.com/2011/05/google-io-session-overview-android-app-engine-a-developers-dream-combination/
The files in the com.google namespace have to be included unchanged, they are from the session "Google IO Session Overview: Android + App Engine: A Developer’s Dream Combination", see http://bradabrams.com/2011/05/google-io-session-overview-android-app-engine-a-developers-dream-combination/
所以这些是您应该执行的步骤:
So these are the steps you should perform:
- 将 3 个 com.google 类添加到您的项目
- 创建一个名为
C2DMReceiver
(命名约定)的类,它继承自C2DMBaseReceiver
并实现必要的抽象事件 - 设置 AndroidManifest.xml
- Add the 3 com.google classes to your project
- Create a class called
C2DMReceiver
(naming convention) which inherits fromC2DMBaseReceiver
and implement the necessary abstract events - Set up the AndroidManifest.xml
AndroidManifest 看起来像
The AndroidManifest looks like
<!-- 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): Registration error ACCOUNT_MISSING",您必须在模拟器中添加一个 Google 帐户.
If you receive on the emulator the error "E/CSE Notifications(401): Registration error ACCOUNT_MISSING", you have to add a Google account to your emulator.
对于您的第二个问题:这取决于您想做什么.当您收到消息并且只想显示通知以便用户能够启动您的应用程序时,您就不需要 Phonegap 插件了.这样你就可以用java解决所有问题.
For your second question: it depends what you want to do. When you receive the message and you just want to display a notification so that the user is able to start your app then you don't need a Phonegap plugin. In that case you can solve everything in java.
这篇关于C2DM/Phonegap 插件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!