1、区分电脑小程序和手机小程序
//区分电脑小程序、手机小程序(目标:手机小程序)
// #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、小程序拦截返回
注:目前小程序拦截返回,只检测到了在某种状态下返回的行为,但没有理想的事件执行
//小程序左滑、导航键返回拦截
onLoad(){//小程序拦截左滑,导航键返回if (!this.$fn.empty(this.previewFlag)) {wx.enableAlertBeforeUnload({message: "点击右上角关闭"});}
}
method:{// 查看文件open(event) {this.previewFlag = true;if (this.preMode) {// #ifdef MP-WEIXINwx.enableAlertBeforeUnload({message: "点击右上角关闭",});// #endif}},close() {this.previewFlag = false;if (this.preMode) {// #ifdef MP-WEIXINwx.disableAlertBeforeUnload();// #endif}},
}
3、app左滑、导航键返回拦截
当在图片预览状态左滑返回时,不返回上一页面,而是关闭图片预览状态
// 拦截图片预览返回上一页面
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,在关闭图片的几秒时间内操作卡顿