uni-app Android 手机sdk 从2.9.8升级到3.1.22 web-view 加载本地html 中跳转页面不渲染

uni-app Android 手机sdk 从2.9.8升级到3.1.22 web-view 加载本地html 中跳转页面不渲染

示例代码:

代码在截图中

操作步骤:

代码在截图中

预期结果:

本地html正常跳转本地html

实际结果:

本地html跳转本地html 不渲染

bug描述:

sdk 从2.9.8升级到3.1.22 web-view 加载本地html 中 window.location.href 跳转页面不渲染

开发环境 版本号 项目创建方式
Windows window10 HBuilderX


更多关于uni-app Android 手机sdk 从2.9.8升级到3.1.22 web-view 加载本地html 中跳转页面不渲染的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app Android 手机sdk 从2.9.8升级到3.1.22 web-view 加载本地html 中跳转页面不渲染的实战教程也可以访问 https://www.itying.com/category-93-b0.html


从2.9.8升级到3.1.22后,web-view加载本地HTML时使用window.location.href跳转页面不渲染的问题,主要是由于SDK版本升级后安全策略和本地文件访问机制发生了变化。

主要原因:

  1. 安全策略升级:3.x版本加强了web-view的安全限制,对本地文件跳转的协议处理更加严格。
  2. 文件路径访问变更:新版本对file://协议的支持有调整,可能影响了本地HTML间的跳转渲染。

解决方案:

方案一:使用相对路径跳转 在本地HTML中,避免使用绝对路径的file://协议,改用相对路径:

// 原代码
window.location.href = "file:///android_asset/test/page2.html";

// 改为
window.location.href = "page2.html";
// 或
window.location.href = "./page2.html";

方案二:使用uni-app路由跳转 如果HTML页面是通过uni-app页面加载的,考虑通过uni-app的路由机制:

// 在web-view页面中
uni.navigateTo({
    url: '/pages/webview/webview?src=本地HTML路径'
});

方案三:检查web-view配置 确保web-view的src属性正确指向本地文件,并检查路径格式:

<web-view src="/static/local/index.html"></web-view>
回到顶部