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

news/2025/2/22 6:59:18

此坑描述

订单详情某按钮点击,通过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.niftyadmin.cn/n/5861846.html

相关文章

MySQL MHA 部署全攻略:从零搭建高可用数据库架构

文章目录 1.MHA介绍2.MHA组件介绍3.集群规划4.服务器初始化5.MySQL集群部署5.1 安装MySQL集群5.2 配置一主两从5.3 测试MySQL主从5.4 赋予MHA用户连接权限 6.安装MHA环境6.1 安装MHA Node6.2 安装MHA Manager 7.配置MHA环境8.MySQL MHA高可用集群测试8.1 通过VIP连接MySQL8.2模…

精准测量PMD:OCI-V光矢量分析系统赋能光纤通信性能优化

在光纤通信技术飞速发展的今天,偏振模色散(PMD)已成为制约系统性能的核心瓶颈之一。PMD会导致信号失真、码间串扰,并限制传输距离,严重影响系统的带宽容量和传输可靠性。因此,精准测量PMD对于优化光纤通信系…

kafka-集群缩容

一. 简述: 当业务增加时,服务瓶颈,我们需要进行扩容。当业务量下降时,为成本考虑。自然也会涉及到缩容。假设集群有 15 台机器,预计缩到 10 台机器,那么需要做 5 次缩容操作,每次将一个节点下线…

Ubuntu 22.04 Install deepseek

前言 deepseekAI助手。它具有聊天机器人功能,可以与用户进行自然语言交互,回答问题、提供建议和帮助解决问题。DeepSeek 的特点包括: 强大的语言理解能力:能够理解和生成自然语言,与用户进行流畅的对话。多领域知识&…

使用Open WebUI下载的模型文件(Model)默认存放在哪里?

🏡作者主页:点击! 🤖Ollama部署LLM专栏:点击! ⏰️创作时间:2025年2月21日21点21分 🀄️文章质量:95分 文章目录 使用CMD安装存放位置 默认存放路径 Open WebUI下…

Android Studio SVN下载安装

原文链接:SVN简介和安装 步骤1:安装 SVN 插件 首先,你需要在 Android Studio 中安装 SVN 插件。你可以按照以下步骤进行操作: 打开 Android Studio点击 “File” 菜单,选择 “Settings”在 “Settings” 窗口中&…

Redis 缓存穿透、击穿、雪崩:问题与解决方案

在使用 Redis 作为缓存中间件时,系统可能会面临一些常见的问题,如 缓存穿透、缓存击穿 和 缓存雪崩。这些问题如果不加以解决,可能会导致数据库压力过大、系统响应变慢甚至崩溃。本文将详细分析这三种问题的起因,并提供有效的解决…

SpringBoot项目实现用户token和资源的多重校验

1、需求 在spring security双token机制实现一文中已经实现了token的校验,在实际的项目中还需要根据用户的角色或用户Id对数据资源进行校验。 例如,有两个项目A和B,张三和李四都是项目实施人员这一角色,张三是项目A的项目组成员&a…