我花了最近几天试图让通知工作,阅读所有类型的插件,我已经走到了尽头。我已经能够在Android和iOS上成功接收Parse测试应用的通知,但每当我尝试添加到自己的应用时,我都会在adb logcat
cordova版本:3.5.0-0.2.4
以下是我执行的步骤:
cordova create pushTest
cordova platform add android
cordova plugin add https://github.com/benjie/phonegap-parse-plugin
然后在www / js / index.js里面我改变onDeviceReady函数看起来像这样(用我的实际appID和clientKey代替)
onDeviceReady: function() {
app.receivedEvent('deviceready');
parsePlugin.initialize(appId, clientKey, function() {
parsePlugin.subscribe('', function() {
alert('OK');
}, function(e) {
alert('error');
});
}, function(e) {
alert('error');
});
}
然后我在Parse中清除我的Installation类以确保app成功注册。我还确保我已安装到我的Android设备上的任何先前应用程序已被删除。然后...
cordova build
adb install platforms/android/ant-build/HelloCordova-debug.apk
我收到一条警告弹出窗口,上面写着' OK'我在Parse的Installation类中有一条新记录。我确保应用程序没有在我的Android设备上的前台运行。然后我发送了Parse的推送通知,我在运行adb logcat
时看不到任何内容
从我尝试的其他调试开始,我尝试将Parse SDK的版本从1.3.8替换为1.5.1,只需从platforms/android/libs
目录中删除旧文件并将新文件放在那里。完成后,我会在adb logcat
( 2795): GCM message io.cordova.hellocordova 0:1402793727153630%0#39597f64f9fd7ecd
W/GCM-DMM ( 2795): broadcast intent callback: result=CANCELLED forIntent { act=com.google.android.c2dm.intent.RECEIVE pkg=io.cordova.hellocordova (has extras) }
这个错误是我一直坚持的错误,并且非常喜欢指导。
我的代码(减去我的appID和clientKey)位于:https://github.com/rpiwetz/notif7
答案 0 :(得分:1)
您可能需要检查this插件,以便使用Android解析器发送和接收通知
答案 1 :(得分:0)
我遇到了非常类似的问题,init函数工作正常,但我没有收到通知。最后,我手动将一些代码添加到主Activity类中:
// register device for parse
Parse.initialize(this, "app_id", "client_key");
PushService.setDefaultPushCallback(this, MyApp.class);
ParseAnalytics.trackAppOpened(getIntent());
ParseInstallation.getCurrentInstallation().saveInBackground();