Привет, я использую this Плагин уведомления GCM для Android и работает почти идеально, единственная проблема, с которой я сталкиваюсь, - это когда пользователь закрывает мое приложение или когда устройство закрывается, служба уведомлений перестает работать.Получить контекст в плагине cordova
Я рассмотрел проблему с кодом плагина и понял, что следующая проблема вызывает проблему.
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, чтобы использовать эту функцию.
Любая помощь будет признателен, спасибо
Извините за эксгумацию, но можете ли вы связать эту дискуссию с форумами Google, если вы ее помните? –