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

微信问题总结(onpageshow ,popstate事件)

此坑描述

订单详情某按钮点击,通过window.location.href跳转到(外部)第三方链接后,回退后,在ios中生命周期和路由导航钩子都失效了,无法触发。 在安卓中无视此坑, 回退没有问题

解决

原因:根据强大的度娘,大概了解此问题可能是因为缓存造成的,所以页面生命钩子,路由钩子没有触发

方案:onpageshow事件。 在用户浏览网页时触发 onpageshow 事件类似onload事件;

onload 事件在页面第一次加载时触发;onpageshow 事件在每次加载页面时触发,即 onload 事件在页面从浏览器缓存中读取时不触发;

created () { 
 window.addEventListener('pageshow', () => { 
 //回退到vue应用执行的操作
 }) 
}

例子

注:组件销毁时最好销毁pageShow事件,避免消耗

  created() {
    //处理跳转外部链接后,ios回退标题不改变问题
    if (this.$store.state.isIOS) {
      window.addEventListener('pageshow', this.setNav)
    }
  },
 beforeDestroy(){
    if (this.$store.state.isIOS) {
      window.removeEventListener('pageshow', this.setNav)
    }
  },
  methods:{
     // 设置标题
    setNav(){
      console.log('aaaaaaa----');
      window.$native.setNavTitle('订单详情', '', '')
      console.log('bbbbbbbbbbb');
    },
   
  }

禁止用户返回

  const popstate = () =>{ // 禁止ios 返回事件
    // if (isIOS()) {
      window.history.pushState(null, null, document.URL);
      window.addEventListener("popstate", function(e) {
      window.history.pushState(null, null, document.URL);
     })
    // }
  }

http://www.kler.cn/a/556251.html

相关文章:

  • [原创](Modern C++)现代C++的关键性概念: 用低内存开销的方式来操作C++标准容器
  • 优先级队列
  • 软考高级《系统架构设计师》知识点(八)
  • 实现“微观自治、中观协作、宏观统筹”的智能生态系统架构
  • 安科瑞能源物联网平台助力企业实现绿色低碳转型
  • My first Android application
  • 【JavaWeb学习Day17】
  • JUC并发—8.并发安全集合一
  • 【精调】LLaMA-Factory 快速开始4 自定义个一个sharegpt数据集并训练
  • 在Spark中,如何使用DataFrame进行高效的数据处理
  • 【Apache Paimon】-- Flink 消费 kafka 数据异常
  • Linux 核心架构与组件(2025更新中)
  • 2024.2.21总结
  • 如何排查服务器 DNS 解析失败的问题
  • 【数据挖掘】可信度
  • 图论 之 最小生成树
  • 大数据组件(四)快速入门实时数据湖存储系统Apache Paimon(3)
  • 【rt-thread】rt-thread 控制 led 的两种方式
  • 深入浅出GraphQL:现代API设计的未来
  • Unity 全局屏幕点击特效