Phonegap html5视频全屏打破按钮行为

时间:2017-01-15 21:36:13

标签: cordova html-framework-7 phonegap-cli

我将Phonegap与Framework7结合使用。

我有一个非常奇怪的问题。我使用html5视频标签来流式传输视频。流媒体工作得很好。

当我全屏显示时出现

问题。退出全屏并按下后退按钮后,应用程序将关闭,而不是进入上一屏幕。

如果我播放视频并且没有全屏播放,它将正常工作并返回上一屏幕。

这是我的代码: document.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 个答案:

答案 0 :(得分:0)

我在使用自定义视频播放器插件的Ionic2应用程序中遇到类似问题。当我将播放器切换到全屏并返回时,Ionic的硬件后退按钮功能停止工作:应用程序在点击硬件后退按钮时立即关闭,而不是从Ionic的导航堆栈中弹出下一个视图。

我使用此处建议的解决方案解决了我的问题:https://github.com/floatinghotpot/cordova-admob-pro/issues/148

我必须覆盖CordovaActivity.java中的dispatchKeyEvent():

@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;
}

当然,这是一个黑客攻击,因为Coreova核心文件已被修改,但我还没有找到更好的解决方案。