微信小程序-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);
	}
}
相关推荐
游戏开发爱好者85 小时前
日常开发与测试的 App 测试方法、查看设备状态、实时日志、应用数据
android·ios·小程序·https·uni-app·iphone·webview
黑码哥5 小时前
ViewHolder设计模式深度剖析:iOS开发者掌握Android列表性能优化的实战指南
android·ios·性能优化·跨平台开发·viewholder
2501_915106327 小时前
app 上架过程,安装包准备、证书与描述文件管理、安装测试、上传
android·ios·小程序·https·uni-app·iphone·webview
2501_915106327 小时前
使用 Sniffmaster TCP 抓包和 Wireshark 网络分析
网络协议·tcp/ip·ios·小程序·uni-app·wireshark·iphone
熊猫钓鱼>_>7 小时前
移动端开发技术选型报告:三足鼎立时代的开发者指南(2026年2月)
android·人工智能·ios·app·鸿蒙·cpu·移动端
宠友信息8 小时前
2025社交+IM及时通讯社区APP仿小红书小程序
java·spring boot·小程序·uni-app·web app
“负拾捌”9 小时前
python + uniapp 结合腾讯云实现实时语音识别功能(WebSocket)
python·websocket·微信小程序·uni-app·大模型·腾讯云·语音识别
换日线°1 天前
NFC标签打开微信小程序
前端·微信小程序
徐同保1 天前
通过ip访问nginx的服务时,被第一个server重定向了,通过设置default_server解决这个问题
ios·iphone
光影少年1 天前
AIGC + Taro / 小程序
小程序·aigc·taro