1、区分电脑小程序和手机小程序
//区分电脑小程序、手机小程序(目标:手机小程序)// #ifdef MP-WEIXINuni.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-WEIXIN wx.enableAlertBeforeUnload({ message: "点击右上角关闭", }); // #endif } }, close() { this.previewFlag = false; if (this.preMode) { // #ifdef MP-WEIXIN wx.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,在关闭图片的几秒时间内操作卡顿