uni-app cli创建的vue3.0项目,打包H5后web-view组件页面在ios15以下打不开
uni-app cli创建的vue3.0项目,打包H5后web-view组件页面在ios15以下打不开
示例代码:
<web-view
:src="
`https://home.mi.com/views/deviceReset.html?model=yeelink.light.bslamp1&locale=zh_CN`
"
>
</web-view>
操作步骤:
H5 web-view组件打开进入三方页面,IOS15以下白屏
预期结果:
正常打开
实际结果:
打开白屏
bug描述:
APP打开通过uniapp的web-view组件打包的H5页面在iOS15以下,打开页面白屏
| 信息类别 | 内容 |
|----------------|--------------------------------------|
| 产品分类 | uniapp/H5 |
| PC开发环境 | Mac |
| PC操作系统版本 | macOS Monterey |
| 浏览器平台 | 手机系统浏览器 |
| 浏览器版本 | ios15以下系统APP嵌套H5 |
| 项目创建方式 | CLI |
| CLI版本号 | ^3.0.0-alpha-3030020211208002 |
更多关于uni-app cli创建的vue3.0项目,打包H5后web-view组件页面在ios15以下打不开的实战教程也可以访问 https://www.itying.com/category-93-b0.html
去掉多余的 ’ 符号
更多关于uni-app cli创建的vue3.0项目,打包H5后web-view组件页面在ios15以下打不开的实战教程也可以访问 https://www.itying.com/category-93-b0.html
我用这个是因为model是个动态变量,跟这个没关系,设置一下web-view的宽和高解决了我的问题
问题可能源于iOS 15以下系统对web-view组件中某些URL格式或JavaScript特性的兼容性支持不足。根据你的描述,可以尝试以下排查和解决方案:
-
检查URL编码:确保
src中的URL参数正确编码。你示例中的&在HTML中会被解析为&,但在某些iOS版本中可能引起解析问题。建议直接使用&,并确保整个URL字符串正确编码:<web-view :src="`https://home.mi.com/views/deviceReset.html?model=yeelink.light.bslamp1&locale=zh_CN`"></web-view> -
验证网络请求:在iOS设备上使用Safari开发者工具(通过Mac连接)检查
web-view加载页面的网络请求和错误。白屏可能是由于页面资源加载失败或跨域限制导致。 -
降级JavaScript特性:如果目标页面使用了较新的JavaScript API(如ES6+语法),可能在旧版iOS中不被支持。尝试在
vue.config.js或uni-app配置中启用Babel转译,确保代码兼容到iOS 10+:// 在uni-app配置中设置编译兼容性 transpileDependencies: true -
测试基础页面:简化测试,将
src替换为一个简单的静态页面(如https://example.com),确认是否仍出现白屏。如果正常,问题可能出在目标页面的内容或第三方服务兼容性上。 -
更新uni-app版本:确保使用最新的uni-app CLI版本(当前为3.0+),旧版本可能存在已知的iOS兼容性问题。运行以下命令更新:
npm update [@dcloudio](/user/dcloudio)/uni-cli-shared -
检查iOS WebView限制:iOS 15以下系统的WebView对某些HTML5特性支持较弱,如果目标页面依赖这些特性,可能导致渲染失败。尝试在页面头部添加兼容性meta标签:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

