1、区分电脑小程序和手机小程序
html
//区分电脑小程序、手机小程序(目标:手机小程序)
// #ifdef MP-WEIXIN
uni.getSystemInfo({
success: (res) => {
// windows | mac为pc端
// android | ios为手机端
// console.log('getSystemInfo,', res.platform);
if (res.platform == "android" || res.platform == "ios")
this.preMode = true;
}
});
// #endif
2、小程序拦截返回
注:目前小程序拦截返回,只检测到了在某种状态下返回的行为,但没有理想的事件执行
html
//小程序左滑、导航键返回拦截
onLoad(){
//小程序拦截左滑,导航键返回
if (!this.$fn.empty(this.previewFlag)) {
wx.enableAlertBeforeUnload({
message: "点击右上角关闭"
});
}
}
method:{
// 查看文件
open(event) {
this.previewFlag = true;
if (this.preMode) {
// #ifdef MP-WEIXIN
wx.enableAlertBeforeUnload({
message: "点击右上角关闭",
});
// #endif
}
},
close() {
this.previewFlag = false;
if (this.preMode) {
// #ifdef MP-WEIXIN
wx.disableAlertBeforeUnload();
// #endif
}
},
}
3、app左滑、导航键返回拦截
当在图片预览状态左滑返回时,不返回上一页面,而是关闭图片预览状态
html
// 拦截图片预览返回上一页面
onBackPress(e) {
if (e.from == "navigateBack" || e.from == "backbutton") {
if (!this.$fn.empty(this.previewFlag)) {
this.$refs.fileopen.close();
return true;
}
}
},
注:在手机小程序上使用uni.previewImage预览图片时会调用onHide、onShow,在关闭图片的几秒时间内操作卡顿