Phonegap html5 Видео полный экран ломает назад поведение кнопки

Я использую Phonegap в сочетании с Framework7.

У меня действительно странная проблема. Я использую html5 video tag для потоковой передачи видео. Потоковая передача работает отлично.

Проблема появляется, когда я иду полноэкранный режим. После выхода из полноэкранного режима и нажатия кнопки Назад приложения закрываются вместо перехода на предыдущий экран.

Если я играю видео и не иду в полноэкранном режиме он будет работать нормально и вернуться к предыдущему экрану.

Это код, который у меня есть:
документ.addEventListener («deviceready», onDeviceReady, false);

function onDeviceReady() {
    document.addEventListener("backbutton", function (e) {
        alert('backbutton');
        if (mainView.activePage.name=='index'){
            navigator.notification.confirm("Are you sure want to exit from App?", onConfirmExit, "Confirmation", "Yes,No");
            function onConfirmExit(button) {
                if(button==2){ //If User select a No, then return back;
                    return;
                }else{
                    navigator.app.exitApp(); // If user select a Yes, quit from the app.
                }
            }
        }
        else{
            mainView.router.back();
        }
    }, false);
}

Предупреждение в коде не появится, если я перейду в полноэкранный режим, выйдите из полноэкранного режима и нажмите назад.

Это какая-то ошибка или я делаю что-то не так?

1 ответ

  1. У меня была похожая проблема в приложении Ionic2, которое использует пользовательский плагин видеоплеера. Когда я переключаю плеер на полный экран и обратно, функциональность кнопки аппаратной поддержки Ionic перестает работать: приложение закрывается сразу после нажатия кнопки аппаратной поддержки вместо того, чтобы выскакивать следующий вид из навигационного стека Ionic.

    Я исправил свою проблему, используя решение, предложенное здесь: https://github.com/floatinghotpot/cordova-admob-pro/issues/148

    Мне пришлось переопределить dispatchKeyEvent () в CordovaActivity.Ява:

    @Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        if (this.appView != null) {
            View webview = this.appView.getView();
            if (webview != null) {            
                return webview.dispatchKeyEvent(event);
            }
            return true;
        }
        return false;
    }
    

    Это хак, конечно, так как ядро Cordova файл был изменен, но я еще не нашел лучшего решения.