Android 获取cordova插件中的上下文
大家好,我使用的是android的GCM通知插件,工作几乎完美,我唯一的问题是当用户强制关闭我的应用程序时,或者当设备关闭时,通知服务停止工作 我查看了插件代码问题,并意识到以下函数导致了问题Android 获取cordova插件中的上下文,android,cordova,google-cloud-messaging,Android,Cordova,Google Cloud Messaging,大家好,我使用的是android的GCM通知插件,工作几乎完美,我唯一的问题是当用户强制关闭我的应用程序时,或者当设备关闭时,通知服务停止工作 我查看了插件代码问题,并意识到以下函数导致了问题 public static void sendJavascript( JSONObject _json ) { String _d = "javascript:"+gECB+"(" + _json.toString() + ")"; Log.
public static void sendJavascript( JSONObject _json )
{
String _d = "javascript:"+gECB+"(" + _json.toString() + ")";
Log.v(ME + ":sendJavascript", _d);
if (gECB != null ) {
gwebView.sendJavascript( _d );
}
}
当设备关闭后再打开或应用程序强制关闭时,gwebView引用将丢失。如果我尝试使用方法gwebView.sendJavascript(_d),我会得到一个空指针异常
查看插件代码时,我注意到在注册设备时引用了gwebView,如下代码所示:
public static Plugin gwebView;
private static String gECB;
private static String gSenderID;
@SuppressWarnings("deprecation")
@Override
public PluginResult execute(String action, JSONArray data, String callbackId)
{
PluginResult result = null;
Log.v(ME + ":execute", "action=" + action);
if (REGISTER.equals(action)) {
Log.v(ME + ":execute", "data=" + data.toString());
try {
JSONObject jo= new JSONObject(data.toString().substring(1, data.toString().length()-1));
gwebView = this;
..............................More code here......................
通知是在后台接收的,但我无法调用任何javascript方法,因为gwebView没有指向任何内容
我的方法是每当gwebView有空指针时在statusbar上显示一个通用通知,但我不知道如何获取应用程序或cordova上下文以使用此函数
任何帮助都将不胜感激,谢谢我在谷歌论坛上发现这是插件的一个缺陷,所以我决定使用Pushwhoosh通知服务。很抱歉,如果你还记得的话,请你将谷歌论坛上的讨论链接起来好吗?