微信小程序-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);
	}
}
相关推荐
mon_star°6 小时前
基于微信小程序原生框架搭建的转盘小程序1.0(附源码)
微信小程序·小程序·notepad++
blackorbird6 小时前
通过攻陷合法网站传播的新型iOS漏洞利用工具包DarkSword
macos·ios·objective-c·cocoa
Emma_Maria6 小时前
【小程序】插件申请成功,待插件提供方确认通过申请后才能使用
微信小程序
捕捉一只前端小白6 小时前
cpolar内网穿透以及微信小程序域名设置
前端·vue.js·微信小程序·小程序
for_ever_love__8 小时前
Objective-C学习 NSSet 和 NSMutableSet 功能详解
开发语言·学习·ios·objective-c
demo007x20 小时前
如何提高 AI 做小程序的效率?
微信小程序·ai编程·claude
2601_9520137620 小时前
新麦同城到家预约上门小程序V3全开源版 vueadmin+unipp开源前端+小程序端
小程序
songgeb20 小时前
Compositional layout in iOS
ios·swift·设计
UTF_821 小时前
iOS动画浅谈
ios·客户端
土土哥V_araolin1 天前
双迪大健康模式系统开发
小程序·个人开发·零售