Кордова/PhoneGap Андроид разбора push-уведомления не возобновить приложение
Я использую Parse для push-уведомлений в моем приложении Cordova для Android. Уведомления поступают нормально, но когда кто-то нажимает, чтобы открыть приложение, оно открывается с черным экраном.
Когда я нажимаю кнопку возврата устройства Android, черный экран исчезает, и приложение cordova появляется сзади. Так что приложение, кажется, не просто возобновляет, а открывает пустую активность, я думаю.
Я использую следующий плагин: https://github.com/benjie/phonegap-parse-plugin , кроме того, я добавил несколько дополнительных строк к основному классу активности, включенному ниже:
package com.mycompany.myapp;
import android.os.Bundle;
import org.apache.cordova.*;
import com.parse.Parse;
import com.parse.ParseAnalytics;
import com.parse.ParseInstallation;
import com.parse.PushService;
public class MyApp extends CordovaActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.init();
super.loadUrl(Config.getStartUrl());
// register device for parse
Parse.initialize(this, APP_ID, PRIVATE_KEY);
PushService.setDefaultPushCallback(this, MyApp.class);
ParseAnalytics.trackAppOpened(getIntent());
ParseInstallation.getCurrentInstallation().saveInBackground();
}
}
Итак, что я могу сделать, чтобы просто заставить приложение вернуться из фонового режима, не пытаясь предпринять какие-либо конкретные действия и не показывая этот черный экран сверху?
1 ответ:
Чтобы ответить на мой собственный вопрос, это ожидаемый результат, насколько я могу судить по документации разбора
Когда клиент получает push-сообщение, появляется уведомление в системном трее. Когда пользователь нажимает на уведомление, они будут войдите в приложение через новый экземпляр YourActivity.
Откуда: https://parse.com/docs/android/api/com/parse/PushService.html
Таким образом, ключевая вещь, которая там есть, создает новые экземпляры, которые, как я предполагаю, пытаются загрузить мой индекс.html, но нет инициализации Cordova или deviceReady, поскольку само приложение уже запущено.
Когда я найду работу, я опубликую ее.
Обновить
Я ошибся, у меня была следующая настройка в моей конфигурации.xml:
<preference name="KeepRunning" value="false"/>
Удаление этого исправило его, так как по умолчанию он равен
true
. Из документов Кордовы:KeepRunning (boolean, по умолчанию true): определяет, будет ли приложение остается запущенным в фоновом режиме даже после события паузы пожары. Установка этого значения в false не убивает приложение после паузы событие, но просто останавливает выполнение кода в cordova webview пока приложение находится в фоновом режиме.