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

【HarmonyOS NEXT】APP首页是一个tab页,tab中的页面无法触发onPageShow事件 APP主页是一个tab,其中一个tab的内容是自定义的页面A。但是tab中加载的页面A无法触发onPageShow事件(已经排除了@entry等问题,页面A在非tab内加载时是可以触发onPageshow的)。但现在A页面的onPageShow事件无法触发,不能在onPageShow中通过router.getParams获取B页面回传的参数。tab -> 其中一个内容页A -> A页面跳转到B页面 -> B页面参数回传给A。当前onPageShow事件是不生效的,onPageShow是页面级的生命周期。 阅读详情

此坑描述

订单详情某按钮点击,通过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);
     })
    // }
  }
【鸿蒙HarmonyOS NEXT】页面和自定义组件生命周期 需要明确几个概念:页面Page即应用的UI页面。可以由一个或者多个自定义组件组成,@Entry装饰的自定义组件为页面的入口组件,即页面的根节点,一个页面有且仅能有一个@Entry。只有被@Entry装饰的组件才可以调用页面的生命周期。onPageShow:页面每次显示时触发。onPageHide:页面每次隐藏时触发一次。onBackPress:当用户点击返回按钮时触发。自定义组件Component@Component装饰的UI单元,可以组合多个系统组件实现UI的复用。 阅读详情

相关推荐

Alipay 支付唤起 h5 测试

测试地址 https://recharge.apps.oppomobile.com/recharge-center/recharge/?from=message try { //唤起客户端快捷参数 var data = {"requestType":"SafePay","fromAppUrlScheme":"alipays","dataString":"h5_ro...

六桥风月IT随笔 1万+

【vue】ios11.4及以下版本后退页面不刷新,onpageshow方法无效

在做H5页面的时候,遇到一个很奇怪的问题,测试告诉在他的ipad上购买成功后返回页面不刷新。我:??? 测试了多个设备,发现在ios版本的11.4及ios8的ipad上,怀疑是系统版本问题。 项目是基于vue的, 但是不是单页面应用,页面之前之间都是使用location.href跳转的。 charles抓包显示在页面打开的时候根本没有调用接口? 多方百度,都说使用onpageshow方法。...

渐墨深的博客 2856

SPI模式下的SD卡读写,为什么你的数据总出错?详解时序与状态机避坑指南

本文深入探讨SPI模式下SD卡读写数据出错的根本原因,提供时序优化与状态机设计的实战指南。针对时钟周期计数、状态机跳转和忙检测等核心问题,详解命令时序细节、状态机同步策略及高级避坑技巧,帮助开发者提升SD卡在SPI模式下的稳定性和性能。

weixin_30514745的博客 261

ArkTS - 组件生命周期

ArkTS - 组件生命周期

记录点滴 3711

python 编程 安卓脚本_详解基于Android的Appium+Python自动化脚本编写

1.AppiumAppium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试, 它使用WebDriver协议驱动iOS,Android和Windows应用程序。通过Appium,我们可以模拟点击和屏幕的滑动,可以获取元素的id和classname,还可以根据操作生成相关的脚本代码。下面开始Appium的配置。appPackage和APPActivity的获取任意下载一个app解压...

weixin_39523625的博客 2928

君正T31x metartc集成测试

metartc为国内杨大侠部分开源的一款用于嵌入式领域webrtc库,它与谷歌官方webrtc相比,编译到君正平台的可执行文件仅有5M即可实现webrtc的通信。1. 目前实现的是基于开源版v5.0-b0版本做的简单修改,官方的好几个版本都多少缺点东西,我这里给整理了一下。目前是局域网连接的webrtc,后续尝试走stun和turn试一下NAT穿越的效果。

fsmpeg的博客 3156

popstata或onpageshow解决微信浏览器点击返回按钮时读取缓存问题

在微信浏览器中,从一个html跳到另外一个html页面后,点击浏览器自带的历史返回按钮,或者在第二个页面中调用history.back()等返回上一页方法,在安卓中直接会返回上一页(相当于重新加载上一页所有内容和逻辑,js会重新在执行一遍),但是在苹果端中,返回到上一页是,浏览器会读取缓存中的页面内容(回到上一页,会保持跳转时的状态,包括刚才浏览的位置,但是js不会在重新执行,因为是直接读取缓存中的

Joker561 6771

给STM32 LWIP做一次‘性能体检’:手把手教你用Wireshark和iperf诊断网络瓶颈

本文详细介绍了如何使用Wireshark和iperf工具对STM32 LWIP网络性能进行全面诊断,帮助开发者精准定位网络瓶颈问题。通过搭建测试环境、集成iperf测试框架、深度报文分析和LWIP配置优化,实现从9KB/s到80MB/s的性能飞跃,特别适用于解决TCP发送速率和卡死问题。

weixin_29631169的博客 288

鸿蒙(HarmonyOS)开发——认识页面和自定义组件生命周期

自定义组件:@Component装饰的UI单元,可以组合多个系统组件实现UI的复用,可以调用组件的生命周期。页面:即应用的UI页面。可以由一个或者多个自定义组件组成,@Entry装饰的自定义组件为页面的入口组件,即页面的根节点,一个页面有且仅能有一个@Entry。只有被@Entry装饰的组件才可以调用页面的生命周期。onPageShow:页面每次显示时触发一次,包括路由过程、应用进入前台等场景。onPageHide:页面每次隐藏时触发一次,包括路由过程、应用进入后台等场景。

xiaokangss的博客 3918

基于 MATLAB BP 神经网络的财务预测

通过基于 MATLAB BP 神经网络的财务预警模型,我们可以对企业的财务风险进行有效地识别和预测。在具体实现过程中,需要注意对财务数据的预处理、模型参数的调整以及结果的解释等问题。MLP模型的输入层、输出层和隐含层之间均为全连接,每个神经元都是上一层神经元的加权求和再加偏置后的非线性变换。其中,输入层接受财务数据,输出层输出财务预测结果,隐含层则对输入数据进行处理和抽象。其中,X’是标准化后的值,X是原始值,μ_i 和σ_i 分别是指标 i 在样本中的均值和标准差。其中,X’是标准化后的值,X是原始值。

TechPulseZ的博客 922

【部署】OpenClaw版本降级实操(含全量卸载)

本文详细介绍了OpenClaw工具的降级与卸载方法。主要内容包括:1)通过npm安装指定版本的核心命令及国内镜像加速方案;2)两种卸载路径:CLI工具存在时的简易一键卸载(含交互式与非交互式命令)和手动分步卸载流程;3)CLI已删除但服务仍在运行时,针对macOS(launchd)、Linux(systemd)和Windows(计划任务)系统的具体清理步骤。文章特别强调了卸载前备份的重要性,并提供了不同安装方式(常规安装与源码克隆)的额外说明,确保用户能彻底清理所有组件。

海兰 3171

移动端返回强制刷新页面pageshow事件persisted总为false解决方案

返回后页面不刷新,一些失效的信息依然显示在页面上。这个问题在iphone手机上会出现,在Android手机上返回时会自动刷新(由于手机机器种类不多,无法做更多测试,欢迎补充)。 为了解决这个问题实验了很多解决办法用计时器呀onload呀都不行,后来找到了一个方法pageshow。 onpageshow 事件在用户浏览网页时触发。 onpageshow 事件类似于 onload 事件,onload 事件在页面第一次加载时触发, onpageshow 事件在每次加载页面时触发,即 onload 事件在页面

qq_35430000的博客 3357

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

onpageshow 监听页面是否是缓存页面(解决微信返回按钮到上一页页面不刷新的问题)

onpageshow 监听页面是否是缓存页面(解决微信返回按钮到上一页页面不刷新的问题)

wangchaoqi1985的博客 367

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

移动端点击返回键 页面不刷新

在浏览器中点击返回或者前进按钮时,页面不刷新的问题。这个问题存在于移动端居多,尤其是苹果手机。这种问题经常在微信、uc这类的浏览器出现,这是因为浏览器保存了DOM和js的状态,相当于保存了整个页面,这种特性称作 “往返缓存”(back-forward cache,或bfcache)。对于这种情况可以用“pageshow”事件来解决,“pageshow”事件表示浏览器展示文档的时候触发,并且是在“o...

徐同保的专栏 3797

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Load和Pageshow事件

下面三种情况都会刷新页面都会触发load事件 1 a标签的超链接 2 F5或者刷新按钮 3 前进后退按钮 但是火狐中有个特点‘往返缓存’,这个缓存中不仅保存着页面数据,还保存了DOM和Javascript的状态,实际上是将整个页面都保存在了内存里。 所以此时后退按钮不能刷新页面 这时需要使用pageshow事件触发,这个事件在页面显示时触发,无论页面是否来自缓存,再重新加载页面中,pageshow会在load事件触发后触发;根据事件对象中的persisted来判断是否是缓存

weixin_69317131的博客 1434

HarmonyOs DevEco Studio小技巧28--部分鸿蒙生命周期详解

自定义组件:@Component装饰的UI单元,可以组合多个系统组件实现UI的复用,可以调用组件的生命周期。页面:即应用的UI页面。可以由一个或者多个自定义组件组成,@Entry装饰的自定义组件为页面的入口组件,即页面的根节点,一个页面有且仅能有一个@Entry。只有被@Entry装饰的组件才可以调用页面的生命周期。

hqy1989的博客 4431

onpageshow 事件及应用

onpageshow 事件在用户浏览网页时触发。 onpageshow 事件类似于 onload 事件,onload 事件在页面第一次加载时触发, onpageshow 事件在每次加载页面时触发,即 onload 事件在页面从浏览器缓存中读取时不触发。和onshow生命周期类似。 html中添加onpageshow事件 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>html中

weixin_49295874的博客 2073

学习鸿蒙基础(8)

为解决此问题,ArkUI引入了@BuilderParam装饰器,@BuilderParam用来装饰指@Builder方法的变量,开发者可在初始化自定义组件时对此属性进行赋值,为自定义组件增加特定的功能。即如果目标页的url在页面栈中已经存在同ur页面,则离栈顶最近的同url页面会被移动到栈顶,并重新加载,如果目标页的url在页面栈中不存在同url页面,则按照标准模式跳转。router.pushUrl()——>Standard A跳转到B,栈中有B,还是新建B,A压入栈中,B在A上。

huyawenz的博客 1718

HarmonyOS入门--页面和自定义组件生命周期

生命周期流程如下图所示,下图展示的是被@Entry装饰的组件(首页)生命周期。自定义组件和页面的关系:自定义组件:@Component装饰的UI单元,可以组合多个系统组件实现UI的复用,可以调用组件的生命周期。页面:即应用的UI页面。可以由一个或者多个自定义组件组成,@Entry装饰的自定义组件为页面的入口组件,即页面的根节点,一个页面有且仅能有一个@Entry。只有被@Entry装饰的组件才可以调用页面的生命周期。

Hassan的小博客! 1169

IOS微信浏览器返回事件popstate监听

问题:通过监听popstate事件,来判断是否点击返回按钮,比如从A页面跳转到B页面(监听popstate),然后再跳转到C页面,点击返回的按钮,测试成功,包括安卓版,但是问题来了,IOS版的微信,是会立即触发popstate事件,导致直接从C页面跳转到A页面,其他的支付宝(安卓、IOS)、微信(安卓)都是可以,就是微信IOS版不行。经过查找相关资料,选择了一个方法,不过有点弊端,但是并不影响操作,

sinat_37138973的博客 6461

优化网页性能:利用onpageshow事件实现页面状态刷新

在网页开发中,优化页面性能是至关重要的一环。一个常见的问题是,当用户使用浏览器的后退按钮或者前进按钮导航页面时,页面可能会从浏览器的缓存中恢复,而不会触发页面的重新加载,导致页面状态可能不正确。为了解决这个问题,可以利用浏览器提供的onpageshow事件来检测页面是否是从缓存中恢复的,并在需要时手动刷新页面状态。在实际项目中,可以根据具体需求,进一步优化页面状态的刷新逻辑,以提高页面性能和用户体验。通过这种方式,可以确保用户在导航页面时,始终得到最新的页面状态,提升用户体验。

h_TVT的博客 745

当onPageShow和window.location.reload()同时出现时候的问题

onpageshow和window.location.reload同时出现的问题

尹小姐的博客 1055

HarmonyOS page生命周期函数讲解

因为已经跳转 index 组件隐藏 onPageHide 触发 然后 AppView 页面显示 onPageShow触发。然后 我们打开预览器 运行index组件 然后 index 组件 被显示 onPageShow生命周期随之触发。然后 设置了一个button按钮 点击跳转向 pages/AppView页面。这个函数是页面返回时 触发 这里所说的返回不是说 router.back。调回 index界面 AppView被隐藏 触发onPageHide。

weixin_45966674的博客 2400
上一篇: JavaScript 语言基础之标签语句
下一篇: token无感刷新
jsPao
博客等级 码龄7年 549粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值