您好我正在使用this GCM通知插件用于Android并且几乎完美,我唯一的问题是当用户强制关闭我的应用程序或设备关闭时通知服务停止工作。
我查看了插件代码问题并意识到以下函数会导致问题。
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有空指针的情况下在状态栏上显示通用通知但我不知道如何获取应用程序或cordova上下文以使用此函数。
感谢任何帮助,谢谢
答案 0 :(得分:2)
我在google论坛上发现这是插件的错误,所以我决定使用Pushwhoosh通知服务。