如果一个app中嵌套H5 但不完全是H5 用以下方法 可以使用调接口的形式进行 进入页面后执行下方代码
第一步 这是放到 H5页面 app.vue 中的代码
window.Index ='2';
window.Item = null;
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(); //当前窗口
var now =
Date.now ||
function() {
return new Date().getTime();
};
currentWebview.canBack(function(evt) {
clearInterval(window.Item);
window.Item = setInterval(function() {
uni.request({
url: context.gradually,
method: 'GET',
header: {
Authorization: uni.getStorageSync('token'),
},
data: {
graduallyKey: uni.getStorageSync('shopUserId'), //
// graduallyValue:v,// 1是不能操作 2是能操作
isSave: '0' // 1是存 0是取
},
success: res => {
console.log(res.data.graduallyValue)
window.Index = res.data.graduallyValue;
plus.key.removeEventListener('backbutton', handleBack); // 请求切换tab 传值得 先清除事件 避免多次添加
if(window.Index == '2'){
plus.key.addEventListener('backbutton', handleBack, false); // 等于2是 添加事件
}else{
plus.key.removeEventListener('backbutton', handleBack); // 清除事件
}
},
});
}, 1000);
if (window.Index == '2') {
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();
}
}
} else {
plus.key.removeEventListener('backbutton', handleBack); //// 清除物理按键事件
}
// 有回退的页面
});
};
plus.key.addEventListener('backbutton', handleBack, false); // 第一次添加监听物理按键事件
});
第二步 这是放到 套壳app 引入这个页面的web-view 页面的代码
切换地下tab的时候 会调用这个hide生命周期 发送一个请求 传一个参数 告诉H5页面现在不在H5系统 清除掉手机物理监听按键
onHide() {
this.gradually(1)
},
一打开这个页面先发送一个请求告诉H5是监听物理按键
onShow() {
this.gradually(2)
},
这是放在 methods 生命周期中
gradually(v){
uni.request({
url: context.graduallyJmt,
method: 'GET',
header: {
'content-type': 'application/x-www-form-urlencoded',
},
data: {
graduallyKey:uni.getStorageSync('shopUserId') , //
graduallyValue:v,// 1是不能操作 2是能操作
isSave: '1' // 1是存 0是取
},
success: res => {
}
})
},
uni-app安卓app嵌套web-view 物理返回键处理 套壳H5 和 app页面共存
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 直奔主题,题目上的两个坑解决方法如下: 一、uni-app web-view组件 打包之后ios显示错误或者显示不...
- 前言:由于要做一个3d模型定制页面,threejs页面只支持h5,所以出现题中的要求。先后试了websocket通...
- uni-app 如何设置web-view 不全屏,不自动铺满,动态控制web-view的高度[https://ww...