【发布时间】:2014-04-28 19:44:56
【问题描述】:
我正在尝试为 android 编辑 the phonegap/cordova PushPlugin 插件,以便在应用不活动但始终执行一些 javascript 工作时不创建状态栏通知。
我想随时接收我的 GCM 消息并使用 javascript 对其进行处理。
PushPlugin 收到的 GCM 消息 => 调用的 javascript 函数。
当我的科尔多瓦应用程序处于活动状态(即在前台或暂停)时,我可以毫无问题地使其工作。
但是当应用程序被销毁时,我不能使用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);
}
}
正如预期的那样,只有当应用程序处于活动状态(前台或暂停)时才会触发 javascript 成功函数
【问题讨论】:
-
这个被标记为 google-chrome-app 有什么原因吗?
-
是的,它最初是一个使用github.com/MobileChromeApps/mobile-chrome-apps 为移动设备构建的谷歌浏览器包应用程序。我认为没有任何帮助,但我只是一个初学者。
-
好的,移动 Chrome 应用程序已经支持 Android 的
chrome.gcm(github.com/MobileChromeApps/mobile-chrome-apps/tree/master/…)。该 Push 插件不是由我们维护的,并且与 mobile-chrome-apps 无关。你仍然可以尝试让它在 iOS 上运行,但需要向他们提交反馈(建议使用 github repo 问题跟踪器)。 -
哦。我查看了 PushPlugin,因为我从 cca 获得了
Permission not supported by cca: gcm (skipping)。`(我将在 Github 上发布一个问题)并且,chrome.gcm在应用程序不活动时会工作吗? -
啊,对不起。看起来像你filed this issue(谢谢!)。 GCM 只是我们支持的 api 的最新补充,
cca尚未在 npm 上更新。从我们的 git repo 获取最新的源代码或等待我们的下一个 npm 发布。
标签: android cordova phonegap-plugins google-chrome-app