vue3在低版本手机上白屏问题解决(兼容低版本webview)

 更新时间:2026年07月16日 08:40:49   作者:吃猕猴桃不吃籽儿  
最近遇到一个问题,用Vue开发的项目在最近两年新出的安卓手机上没问题,在三四年前的旧手机上出现白屏问题,这篇文章主要介绍了vue3在低版本手机上白屏问题解决的相关资料,兼容低版本webview,需要的朋友可以参考下

遇到问题

在安卓10的手机上,移动端h5页面白屏,无法正常加载。在其他手机上显示正常。这是vue3界面对低版本webview不兼容的问题

解决方案

1.在vite.config.ts中配置legacy,处理兼容问题

主要原因是: 有些手机是旧版浏览器,但是代码使用的新的语法。这样旧的浏览器不支持新的语法。就会导致白屏兼容性问题。

export default defineConfig(({ mode }) => {
  return {
    plugins: [
      vue(),
      vueDevTools(),
      legacy({
        targets: ['defaults', 'not IE 11', 'Chrome >= 53', 'Android >= 6'],
        polyfills: [
          'es.promise',
          'es.array.iterator',
          'es.object.assign',
          'es.promise.finally',
          'es.symbol',
        ],
        additionalLegacyPolyfills: [
          'core-js/stable',
          'regenerator-runtime/runtime',
        ],
        renderLegacyChunks: true,
        renderModernChunks: false,
      }),
    ],
  }
})

对其中配置的详细解释:

polyfills:垫片(意思类似于补丁),旧的浏览器不支持的功能或语法通过补丁的形式补上去。

// ... existing code ...
 targets: ['defaults', 'not IE 11', 'Chrome >= 53', 'Android >= 6'],
// 指定需要支持的浏览器版本范围
// 'defaults': 使用 browserslist 的默认浏览器范围
// 'not IE 11': 排除对 Internet Explorer 11 的支持
// 'Chrome >= 53': 支持 Chrome 53 及以上版本
// 'Android >= 6': 支持 Android 浏览器 6 及以上版本

polyfills: [
  'es.promise',
  // 为不支持 Promise 的浏览器添加 Promise polyfill
  'es.array.iterator',
  // 为数组迭代器相关功能添加 polyfill,如 entries(), keys(), values() 等方法
  'es.object.assign',
  // 为 Object.assign 方法添加 polyfill,用于对象属性复制
  'es.promise.finally',
  // 为 Promise.prototype.finally 添加 polyfill
  'es.symbol',
  // 为 Symbol 类型添加 polyfill,支持 ES6 Symbol 特性
],
additionalLegacyPolyfills: [
  'core-js/stable',
  // 添加 core-js 稳定版本的所有 polyfills,提供广泛的 ES 标准库支持
  'regenerator-runtime/runtime',
  // 添加 regenerator-runtime,支持 async/await 等生成器功能
],
renderLegacyChunks: true,
// 为旧版浏览器生成兼容性代码块,确保在不支持现代 JavaScript 特性的浏览器中正常运行

renderModernChunks: false,
// 不生成现代浏览器专用的代码块,只生成兼容旧版浏览器的代码
// ... existing code ...

polyfills 和 additionalLegacyPolyfills 之间的区别:

polyfills :

  1. 按需引入:根据 targets 配置和代码实际使用情况自动引入必要的polyfill
  2. 只引入目标浏览器(根据targets)不支持的API的polyfill

additionalLegacyPolyfills :

  1. 强制引入:无论目标浏览器是否支持,都会引入这些polyfill
  2. 兜底方案:用于那些自动检测可能遗漏的polyfill
  3. 完整包引入:通常引入完整的polyfill包

additionalLegacyPolyfills 解释

  1. additionalLegacyPolyfills - 这是一个配置项,用于指定需要额外添加的 polyfills
  2. 'core-js/stable' - core-js 是一个现代 JavaScript 标准库的 polyfill,提供对最新 JavaScript 特性的兼容支持。/stable 表示只包含稳定的特性
  3. 'regenerator-runtime/runtime' - 这是用于支持 JavaScript 的 async/await 和 generator 函数的运行时库

总的来说,代码的作用是在构建旧版浏览器兼容版本时,确保添加必要的 polyfills,使得应用能够在不支持现代 JavaScript 特性的旧浏览器中正常运行。

2. 在package.json中添加依赖

"dependencies": {
    "core-js": "^3.39.0",
    "regenerator-runtime": "0.14.1",
  },

3. 移动端tips排查问题,打开vconsole

在index.html中添加这行代码

<script src="https://unpkg.com/vconsole@latest/dist/vconsole.min.js"></script>
    <script>
      var vConsole = new VConsole()
</script> 

总结 

到此这篇关于vue3在低版本手机上白屏问题解决的文章就介绍到这了,更多相关vue3在低版本手机白屏内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • VUE2 前端实现 静态二级省市联动选择select的示例

    VUE2 前端实现 静态二级省市联动选择select的示例

    下面小编就为大家分享一篇VUE2 前端实现 静态二级省市联动选择select的示例。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • Vue Promise的axios请求封装详解

    Vue Promise的axios请求封装详解

    这篇文章主要介绍了Vue Promise的axios请求封装详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Vue脚手架安装时遇到的无法安装问题详解

    Vue脚手架安装时遇到的无法安装问题详解

    开发中遇到bug是在正常不过了,而程序也基本都是bug堆里爬出来的,下面这篇文章主要给大家介绍了关于Vue脚手架安装时遇到的无法安装问题的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • vue 中基于html5 drag drap的拖放效果案例分析

    vue 中基于html5 drag drap的拖放效果案例分析

    本文通过三个案例给大家介绍了vue 中基于html5 drag drap的拖放效果 ,需要的朋友可以参考下
    2018-11-11
  • 详解10分钟学会vue滚动行为

    详解10分钟学会vue滚动行为

    本篇文章主要介绍了vue滚动行为,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • vue3+vite+ts如何配置多个代理并解决报404问题

    vue3+vite+ts如何配置多个代理并解决报404问题

    这篇文章主要介绍了vue3+vite+ts如何配置多个代理并解决报404问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • 详解Vue依赖收集引发的问题

    详解Vue依赖收集引发的问题

    这篇文章主要介绍了Vue依赖收集引发的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • vuejs 制作背景淡入淡出切换动画的实例

    vuejs 制作背景淡入淡出切换动画的实例

    今天小编就为大家分享一篇vuejs 制作背景淡入淡出切换动画的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • Vue3无痛迁移到Lyt.js的实现示例

    Vue3无痛迁移到Lyt.js的实现示例

    本文主要介绍了Vue3无痛迁移到Lyt.js的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-04-04
  • Vue中多元素过渡特效的解决方案

    Vue中多元素过渡特效的解决方案

    本文将详细介绍通过Vue使多元素进行过渡动画,需要的朋友可以参考下
    2020-02-02

最新评论