首页 文章

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

提问于
浏览
0

我正在将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

    我在使用自定义视频播放器插件的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核心文件已被修改,但我还没有找到更好的解决方案 .

相关问题