GCM推送通知,如果应用程序关闭在手机(Phonegap Android)
问题描述:
我使用GCM与我phonegap android应用程序。我面临的问题是,如果应用程序在移动设备上打开,则该应用程序能够收到通知,但如果该应用程序已关闭,则无法收到通知。我已经通过编写的Java代码工作正常。但它无法与接收消息GCM推送通知,如果应用程序关闭在手机(Phonegap Android)
public class GCMIntentService extends GCMBaseIntentService {
public static final String ME="GCMReceiver";
public GCMIntentService() {
super("GCMIntentService");
}
private static final String TAG = "GCMIntentService";
@Override
public void onRegistered(Context context, String regId) {
Log.v(ME + ":onRegistered", "Registration ID arrived!");
Log.v(ME + ":onRegistered", regId);
JSONObject json;
try
{
json = new JSONObject().put("event", "registered");
json.put("regid", regId);
Log.v(ME + ":onRegisterd", json.toString());
// In this case this is the registration ID
GCMPlugin.sendJavascript(json);
}
catch(JSONException e)
{
// No message to the user is sent, JSON failed
Log.e(ME + ":onRegisterd", "JSON exception");
}
}
@Override
public void onUnregistered(Context context, String regId) {
Log.d(TAG, "onUnregistered - regId: " + regId);
}
@Override
protected void onMessage(Context context, Intent intent) {
Log.d(TAG, "onMessage - context: " + context);
// Extract the payload from the message
Bundle extras = intent.getExtras();
if (extras != null) {
try
{
Log.v(ME + ":onMessage extras ", extras.getString("message"));
JSONObject json;
json = new JSONObject().put("event", "message");
json.put("message", extras.getString("message"));
json.put("msgcnt", extras.getString("msgcnt"));
Log.v(ME + ":onMessage ", json.toString());
GCMPlugin.sendJavascript(json);
// Send the MESSAGE to the Javascript application
}
catch(JSONException e)
{
Log.e(ME + ":onMessage", "JSON exception");
}
}
}
@Override
public void onError(Context context, String errorId) {
Log.e(TAG, "onError - errorId: " + errorId);
}
}
答
所写的,我想你正在使用GCMPlugin plugin.There是无处写东西如何处理推送通知时,应用程序会去后台或者是destroyed.In javascript代码我沟通意见更好地删除这个插件并使用PushPlugin,否则你不得不做一个剧烈的变化,不仅GCMIntentservice.java,而且GCMPlugin.java。
分享用GCMInterface.java文件写的java代码... – Banik 2015-04-04 18:55:34
Thanks Banik!我已经添加了代码,请检查以上 – user2428218 2015-04-05 17:34:05
我认为你使用的是https://github.com/marknutter/GCM-Cordova插件。当应用程序将背景或被销毁时,无处不在编写任何如何处理推送通知。在我看来,它最好删除这个插件并使用https://github.com/phonegap-build/PushPlugin,否则我不仅要对GCMIntentservice.java进行彻底改变,而且还要对GCMPlugin.java进行彻底改变。并让我知道。 – Banik 2015-04-05 19:24:38