我正在尝试编辑android的phonegap/cordova PushPlugin插件,以便在应用程序不活动但总是做一些javascript工作时不创建状态栏通知。
我想随时收到我的GCM消息,并用javascript对其进行处理。
PushPlugin=>调用的javascript函数收到的GCM消息
当我的cordova应用程序处于活动状态(即在前台或暂停)时,我可以让它正常工作。但当应用程序被破坏时,我不能使用sendJavascript(...)
。它会使应用程序崩溃。
有没有一种方法可以保持回调上下文,或者在应用程序不再活动时唤醒网络视图?
附言:我完全迷失在我所有的谷歌研究中,这些研究给了我旧的结果和所有不同版本的phonegap。
更新:
实际上我有这个代码:
public class PushPlugin extends CordovaPlugin {
private static CallbackContext callbackCont;
public boolean execute(String action, JSONArray data, CallbackContext callbackContext) {
callbackCont = callbackContext;
PluginResult progressResult = new PluginResult(PluginResult.Status.OK, "Start");
progressResult.setKeepCallback(true);
callbackCont.sendPluginResult(progressResult);
}
//Fired by an Receiver
public static void action(JSONObject _json) {
PluginResult progressResult = new PluginResult(PluginResult.Status.OK, "Message");
progressResult.setKeepCallback(true);
callbackCont.sendPluginResult(progressResult);
}
}
正如预期的那样,只有当应用程序处于活动状态(前台或暂停)时,才会触发javascript成功函数。
由于该应用程序最初是一个chrome打包的应用程序,使用cca为移动设备构建,我现在使用的是cca刚刚支持的chrome应用程序GCM插件,当收到新消息时会唤醒该应用程序。
请参阅https://github.com/MobileChromeApps/mobile-chrome-apps/tree/master/chrome-cordova/plugins/chrome.gcm