uniapp使用vue3打包H5,android或ios加载白屏

在使用uniapp结合Vue3创建项目并执行npm run build:h5后,通过Android或iOS的webview加载会遇到白屏问题。原因在于跨域限制,Android Studio日志显示CORS政策阻止了文件访问。解决方案是针对webview添加允许所有源的CORS设置,调整后应用能正常打开。经测试,Vue2的项目打包未出现此问题,推测可能由Vue3的打包配置变动引起。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前景介绍

        按照uniapp官方文档介绍,根据步骤创建了使用Vue3的项目;执行命令npm run build:h5,

本地安装了http-server,打包之后的dist文件夹,执行http-server后,可以访问;

       但是使用Android或者ios进行本地加载白屏;以Android为例子,将打包后的文件夹存放到asset文件夹下,使用webview的loadUrl加载;

 val webView = findViewById<WebView>(R.id.webview)
 val webSettings = webView.settings
 webSettings.javaScriptEnabled = true
 webSettings.allowFileAccess = true
 webSettings.allowContentAccess = true
 webSettings.domStorageEnabled = true
 // 加载本地 HTML 文件
 val htmlFile = "file:///android_asset/plugin_m1010_01/index.html#pages/index/index" 
// 确保 HTML 文件在 assets 文件夹中
 webView.loadUrl(htmlFile)

但是调试发现,白屏;查看android-studio发现了如下问题

uniapp  Access to script at 'file:///android_asset/assets/index-WZlAV6YJ.js' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol 。。。。。。

大致意思就是跨域了;按照网上的教程加了一行代码

webSettings.setAllowUniversalAccessFromFileURLs(true);

重新debug调试,可以正常打开了;

PS:亲测了一下,使用vue2的项目打包成h5,是没有这个问题的;应该是vue3的打包改动引起的;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xvzhengyang

感谢,励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值