Кордова/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 2

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 пока приложение находится в фоновом режиме.

Http://cordova.apache.org/docs/en/3.5.0/guide_platforms_android_config.md.html#Android%20Configuration