当前位置: 首页 > news >正文

uniApp App内嵌H5打开内部链接,返回手势(左滑右滑页面)会直接关闭H5项目

uniApp App内嵌H5打开内部链接,左滑右滑页面会直接关闭H5项目,退出应用,而不是我想要的返回上一级页面。
处理方法如下图:
在这里插入图片描述
App.vue具体代码:

<template><div id="app" data-theme="default"><keep-alive><router-view v-if="$route.meta.keepAlive" /></keep-alive><router-view v-if="!$route.meta.keepAlive" /></div>
</template><script>
import Vue from 'vue'
export default {data() {return {}},created() {// 监听网络状态变化window.addEventListener('online', this.handleOnline)window.addEventListener('offline', this.handleOffline)// 监听页面加载错误window.addEventListener('error', this.handlePageError)},mounted() {window.onerror = (message, source, lineno, colno, error) => {if (error && error.stack) {console.log(error, 'error')this.$toast('网络异常,请检查网络连接')}return true}// document.documentElement.style.setProperty(//         '--statusbar-height',//        '30px'//     )window.getBarStatusHeightCallback = res => { Vue.prototype.$barHeight = resconsole.log('状态栏高度', res)document.documentElement.style.setProperty('--statusbar-height',`${res}px`)}// 待触发 `UniAppJSBridgeReady` 事件后,即可调用 uni 的 API。document.addEventListener('UniAppJSBridgeReady', () => {uni.webView.getEnv(res => {console.log('当前环境:' + JSON.stringify(res), uni)Vue.prototype.$Env = res})uni.postMessage({data: {type: 'getBarHeight',msg: '获取状态栏高度'}})})// 滑动返回let startX = 0document.addEventListener('touchstart', e => {startX = e.touches[0].clientX})document.addEventListener('touchmove', e => {e.preventDefault() // 阻止默认返回行为const per = document.body.clientWidth / 5 // 页面宽度分成5份if (startX < per || startX > per * 4) { // 控制开始触碰点在小于页面的五分之一或者大于页面的五分之四氛围内有效const deltaX = e.touches[0].clientX - startXif (Math.abs(deltaX) > 50) { // 左滑、右滑,阈值50pxthis.$router.goBack()// if (!['/home', '/my'].includes(this.$route.matched[0].path)) {//     this.$router.goBack()// }}}})},beforeDestroy() {// 移除事件监听,避免内存泄露window.removeEventListener('online', this.handleOnline)window.removeEventListener('offline', this.handleOffline)window.removeEventListener('error', this.handlePageError)},methods: {handleOnline() {console.log('网络连接恢复')// 处理逻辑,例如提示用户或重试操作},handleOffline() {console.log('网络连接断开')this.$toast('网络异常,请检查网络连接')// 处理逻辑,例如提示用户网络不给力},handlePageError(event) {console.error('页面加载出错', event.target.src)this.$toast('网络异常,请检查网络连接')// 处理逻辑,例如提示用户或重定向到错误页面}}
}
</script><style lang="scss" scoped>
:root {--statusbar-height: 0; //状态栏高度--primary-color: #24a854;
}#app {height: 100%;// overflow: auto;* {touch-action: pan-y;}
}::v-deep(.van-button--block) {border-radius: 14px;
}</style>
http://www.dtcms.com/a/461555.html

相关文章:

  • 文字排版网站网站建设的宣传词
  • K8s学习笔记(十七) pod优雅终止流程
  • Redis-基础介绍
  • Redis常用数据库及单线程模式
  • Subword-Based Tokenization策略之BPE与BBPE
  • 网站关键词用热门的还是冷门青岛天河小学网站建设
  • 个人域名备案 网站名称一元购网站建设流程图
  • 企业级灰度发布架构:基于Nginx的精细化流量治理与平滑演进实践
  • 【滑动窗口专题】第一讲:长度最小的子数组
  • 软考-系统架构设计师 基于架构的软件开发方法详细讲解
  • 电子电气架构 --- 操作系统的基本概念
  • 苏州做网站公司电话wordpress资源分享网
  • 手机能建设网站企业的做网站
  • Unity笔记(十一)——换装、Spine骨骼动画、3D动画相关
  • 面向汽车网络安全的轻量级加密技术
  • 《投资-114》价值投资者的认知升级与交易规则重构 - 从大规模分工的角度看,如何理解“做正确的事”,即满足下游正确的需求
  • 添加一路AXI总线对DDR进行读写时,XDMA测试不通过
  • 基于python的机器学习(十)—— 评估算法(三)
  • 男女做那个的的视频网站检察院门户网站建设成效
  • Oracle的SID是什么
  • Oracle大会临近,23ai 本地版会发布吗?
  • 【Python刷力扣hot100】11. Container With Most Water
  • 通信建设网站做网站主页上主要放哪些内容
  • 《常用 IDL(接口定义语言)详解与对比》
  • 做二手房产网站多少钱河南建设工程信息网站
  • K230基础-获取触摸坐标
  • Linux应用--网络编程
  • 鸟哥的Linux私房菜 第三部分: 学习shell与shell script
  • 鸿蒙中 UDP 数据包发不出去?一文教你从权限到代码彻底排查!
  • 前端小白学习路线(参考)