uniapp:app使用webview链接uniapp打包的H5时物理返回键失效
场景说明:
在这个项目中使用webview跳转另一个uniapp打包成h5的项目。在h5链接里,app使用物理返回键(手机自带返回键)无效。
1.webview跳转页面
<web-view :webview-styles="webviewStyles" :src="url" @message="handleMessage"></web-view>
2.解决方法
写在打包为h5的项目中:
目录:
代码:
<script>
var plusReady = function (callback) {
if (window.plus) {
callback();
} else {
document.addEventListener('plusready', callback);
}
};
plusReady(function () {
var firstBack = 0;
var handleBack = function () {
var currentWebview = plus.webview.currentWebview(); //当前窗口
console.log("currentWebview",currentWebview);
var now = Date.now || function () {
return new Date().getTime();
};
currentWebview.canBack(function (evt) {
/**
* 有可后退的历史记录,则后退。
* 否则,关闭当前窗口。
*/
// 有回退的页面
if (evt.canBack) {
history.back();
} else {
// 没有回退页面
// firstBack 为0时 第一次返回
if (!firstBack) {
// 第一次返回时间
firstBack = now();
// 信息提示
plus.nativeUI.toast('再按一次退出应用');
setTimeout(function () {
firstBack = 0;
}, 2000);
//第二次点击返回 直接退出应用
} else if (now() - firstBack < 2000) {
plus.runtime.quit();
}
}
});
};
plus.key.addEventListener('backbutton', handleBack);
});
</script>
注:这是适合我项目的代码,具体看自己项目进行调整
参考:https://ask.dcloud.net.cn/article/13525