我正在尝试为Android修改the phonegap/cordova PushPlugin插件,以便在应用未处于活动状态但始终进行一些javascript工作时不创建状态栏通知。
我希望收到我的GCM消息,随时可以使用javascript 对其进行一些操作。
PushPlugin收到的GCM消息=> javascript函数调用。
当我的cordova应用程序处于活动状态(即处于前台或暂停状态)时,我没有问题。
但是,当应用程序被销毁时,我无法使用sendJavascript(...)
。它使应用程序崩溃。
当应用程序不再处于活动状态时,是否有办法保留回调上下文或唤醒webview?
PS:我在谷歌的所有研究中都完全迷失了,这些研究给了我原来的结果和所有不同版本的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);
}
}
正如预期的那样,仅当app处于活动状态(前台或暂停)时才会触发javascript成功函数
答案 0 :(得分:0)
由于应用程序最初是一个Chrome打包的应用程序,使用cca为移动设备构建,我现在使用cca支持的chrome app GCM插件,并在新消息到来时唤醒应用程序。
请参阅https://github.com/MobileChromeApps/mobile-chrome-apps/tree/master/chrome-cordova/plugins/chrome.gcm