android - 推送通知不适用于 Android Phonegap 2.2.0

标签 android cordova push-notification

我正在为 android cordova 2.2.0 开发推送通知

我已按照 PushPlugin page 上列出的所有说明进行操作,但是每当我尝试注册一个设备时,我都会收到一个错误,并且应用程序只是关闭/关闭,当我在我的 Android 手机上进行测试时会发生这种情况

在 android 虚拟机上,我从 logcat 得到以下信息:

02-19 21:48:31.152: D/SoftKeyboardDetect(383): Ignore this event
02-19 21:48:31.302: V/PushPlugin(383): execute: action=register
02-19 21:48:31.322: V/PushPlugin(383): execute: data=        [{"senderID":391440660838,"ecb":"onNotificationGCM"}]
02-19 21:48:31.322: V/PushPlugin(383): execute: jo=        {"senderID":391440660838,"ecb":"onNotificationGCM"}
02-19 21:48:31.352: D/AndroidRuntime(383): Shutting down VM
02-19 21:48:31.352: W/dalvikvm(383): threadid=1: thread exiting with uncaught         exception (group=0x40015560)
02-19 21:48:31.392: E/AndroidRuntime(383): FATAL EXCEPTION: main
02-19 21:48:31.392: E/AndroidRuntime(383): java.lang.ClassCastException:         java.lang.Long
02-19 21:48:31.392: E/AndroidRuntime(383):  at                 com.plugin.gcm.PushPlugin.execute(PushPlugin.java:63)
02-19 21:48:31.392: E/AndroidRuntime(383):  at         org.apache.cordova.api.CordovaPlugin.execute(CordovaPlugin.java:61)
02-19 21:48:31.392: E/AndroidRuntime(383):  at         org.apache.cordova.api.PluginManager.exec(PluginManager.java:224)
02-19 21:48:31.392: E/AndroidRuntime(383):  at         org.apache.cordova.ExposedJsApi.exec(ExposedJsApi.java:43)
02-19 21:48:31.392: E/AndroidRuntime(383):  at org.apache.cordova.CordovaChromeClient.onJsPrompt(CordovaChromeClient.java:213)
02-19 21:48:31.392: E/AndroidRuntime(383):  at         android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:566)
02-19 21:48:31.392: E/AndroidRuntime(383):  at android.os.Handler.dispatchMessage(Handler.java:99)
02-19 21:48:31.392: E/AndroidRuntime(383):  at android.os.Looper.loop(Looper.java:123)
02-19 21:48:31.392: E/AndroidRuntime(383):  at android.app.ActivityThread.main(ActivityThread.java:3683)
02-19 21:48:31.392: E/AndroidRuntime(383):  at java.lang.reflect.Method.invokeNative(Native Method)
02-19 21:48:31.392: E/AndroidRuntime(383):  at java.lang.reflect.Method.invoke(Method.java:507)
02-19 21:48:31.392: E/AndroidRuntime(383):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-19 21:48:31.392: E/AndroidRuntime(383):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-19 21:48:31.392: E/AndroidRuntime(383):  at         dalvik.system.NativeStart.main(Native Method)
02-19 21:49:32.252: I/Process(383): Sending signal. PID: 383 SIG: 9

我已重新检查页面上的所有内容并按照说明进行操作,但当我尝试注册设备时应用程序仍然关闭。

最佳答案

你得到的错误是:

02-19 21:48:31.392: E/AndroidRuntime(383): java.lang.ClassCastException: java.lang.Long 02-19 21:48:31.392: E/AndroidRuntime(383): at
com.plugin.gcm.PushPlugin.execute(PushPlugin.java:63)

PushPlugin.java:63 是:

gSenderID = (String) jo.get("senderID");

看起来该行试图将 Long 转换为 String。我认为问题出在这里:

execute: jo=        {"senderID":391440660838,"ecb":"onNotificationGCM"}

我不知道 jo JSON 是如何初始化的,但它可能应该更改为:

execute: jo=        {"senderID":"391440660838","ecb":"onNotificationGCM"}

您应该用引号将数字括起来。

编辑:

查看您发布的链接中的说明,您肯定忘记了发件人 ID 周围的引号:

if ( device.platform == 'android' || device.platform == 'Android' )
{
    pushNotification.register(
        successHandler,
        errorHandler, {
            "senderID":"replace_with_sender_id",
            "ecb":"onNotificationGCM"
        });
}

关于android - 推送通知不适用于 Android Phonegap 2.2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21893169/

相关文章:

android - 如何将 Android Studio 完全安装到非默认设置 (D :) drive

java - 如何使用 Android 删除外部文件夹?

Android:notifyDataSetChanged()在方向改变后不更新 ListView

php - 将数据从本地 MySQL 服务器加载到 Phonegap 应用程序

ios - 适用于 iOS 的 Pusher 与 PubNub

ios - PhoneGap/Cordova pushplugin iOs 注册回调未触发

java - 免费版本限制数据库条目

javascript - 将 php 内容加载到 Phonegap 中

android - Google Play 商店发布问题

iOS 应用程序通知角标(Badge)计数未重置为 0