微信小程序-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);
	}
}
相关推荐
搜狐技术产品小编20232 小时前
iOS OOM治理
macos·ios·objective-c·cocoa
2501_915909062 小时前
在无需越狱的前提下如何对 iOS 设备进行文件管理与数据导出
android·macos·ios·小程序·uni-app·cocoa·iphone
UI设计兰亭妙微2 小时前
新东方文旅小程序用户体验界面设计优化
小程序·ux·用户体验设计
说私域2 小时前
链动2+1模式AI智能名片小程序赋能客户端微商生态化构建研究
人工智能·小程序·流量运营·私域运营
毕设源码-钟学长2 小时前
【开题答辩全过程】以 基于微信小程序的考公论坛的设计与实现为例,包含答辩的问题和答案
微信小程序·小程序
@大迁世界3 小时前
Swift、Flutter 还是 React Native:2026 年你该学哪个
开发语言·flutter·react native·ios·swift
boss-dog3 小时前
Record3D 获取iphone RGBD 和 pose
ios·iphone·record3d
@大迁世界3 小时前
“围墙花园”的终结?iOS 26.3 带来的三大生态系统巨变
macos·ios·objective-c·cocoa
UI设计兰亭妙微3 小时前
零售门店选址评估小程序界面设计
人工智能·小程序·零售