微信小程序-ios环境下webview打开的h5页面replace跳转方式不生效问题

如题:

我的webview页面打开的h5页面是一个中间页,中间页进行一系列判断逻辑后,会跳转最终的目标页。

但是这个中间页的逻辑只能执行一次,我不希望用户点击返回上一页时再回到这个页面。

因此,我使用 location.replace(url) 方式跳转页面。

但是在 ios 环境,我发现 location.replace() 跳转后的表现跟location.href 一样,在返回上一页时,仍然回到了这个中间页。

导致页面逻辑再次执行,发生错误。

解决方案:

使用 history.replaceState(newState, '', newUrl) + location.reload 替代 location.replace,重新封装一个replace方法。

javascript 复制代码
function locationReplaceUrl(url) {
	// 判断是否为iOS环境
  	const isIOS = /(iPhone|iPad|iPod)/i.test(navigator.userAgent) && !window.MSStream; // 排除IE/Edge
  	if(isIOS) {
  		try {
			// 替换当前历史记录条目,url可以是相对路径或绝对路径
    		history.replaceState(null, '', url);
    		location.reload();
		} catch (err) {
			location.replace(url);
		}
	}else {
		location.replace(url);
	}
}
相关推荐
茶底世界之下2 小时前
窗边白雏菊与旧书:用 Awaking 留住一束暖光
ios·app·产品
dreams_dream13 小时前
微信小程序:页面事件-上拉触底
微信小程序·小程序
鹏多多1 天前
AI 到底能不能独立做个产品?我拿一个小程序验证了
前端·微信小程序·ai编程
茶底世界之下1 天前
阴天海边的蓝船:用 Awaking 把灰蓝调成清亮主角
ios·app·产品
Digitally1 天前
如何将 iPhone 备份到 iCloud?
ios
wafrdggh1 天前
2026电商快递批量查询怎么用?固乔助手模板设置评测
大数据·数据库·小程序
计算机毕设定制辅导-无忧学长2 天前
《基于微信小程序的居家医疗陪护预约系统设计与实现》
java·spring boot·微信小程序·uniapp·居家医疗陪护预约系统
传奇开心果编程2 天前
【Flutter踩坑排雷】第19课:路由硬编码坑|字符串路由书写错误,页面跳转失败排查
android·flutter·ios·移动开发·跨平台·ui框架·声明式ui
茶底世界之下2 天前
雨后街口的斑马线:用 Awaking 把颜色让给光与步伐
ios·app·产品
wafrdggh2 天前
2026 商城小程序平台哪个价格合理?把跨境附加成本这个坑算透
大数据·小程序