C2DM / Phonegap插件是什么?

3

我想在我的Phonegap Android应用程序中添加推送消息,认为C2DM是使其工作的最佳方式 - 能否指点我设置它的正确方向? 是否有插件或教程可以帮助解决这个问题?

另外 - 我真的需要插件吗 - 是否可能以传统的Android方式将C2dm添加到我的应用程序,而不会损坏我的phonegap设置?

2个回答

4
是的,C2DM是Android推送解决方案。您可以在https://github.com/awysocki/C2DM-PhoneGap上找到示例实现。
com.google名称空间中的文件必须不变地包含在其中,它们来自“Google IO Session Overview: Android + App Engine: A Developer's Dream Combination”会话,详见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): Registration error ACCOUNT_MISSING”错误,则需要向模拟器添加Google帐户。
至于第二个问题:这取决于您想要做什么。如果您只想接收消息并显示通知,以便用户能够启动您的应用程序,那么您不需要Phonegap插件。在这种情况下,您可以在Java中解决所有问题。

1
如果你看到了这个答案,请注意C2DM已经过时,现在你需要使用GCM。 此外,有一个官方的PhoneGap插件支持Android和iPhone的通知。请查看PushPlugin,网址是https://github.com/phonegap-build/PushPlugin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接