我将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);
}
如果我全屏显示,退出全屏并按回来,代码中的提示将不会显示。
这是一些错误还是我做错了什么?
答案 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核心文件已被修改,但我还没有找到更好的解决方案。