Hybrid App 中如何管理不同平台的 JSBundle 版本?

IT人旗施 阅读 2

我们用 Vue 做了一个 Hybrid 应用,原生端通过 WebView 加载本地打包好的 JSBundle。但每次发版 iOS 和 Android 的 bundle 路径或版本号不一致,导致线上用户经常加载旧资源,甚至白屏。有没有靠谱的版本管理方案?

目前尝试在 index.html 里加时间戳参数,但原生端预加载的是固定文件名,改了反而找不到。下面是我们当前的入口模板:

<div id="app"></div>
<script src="./js/app.js?v=1.2.3"></script>
<script>
  // 原生端注入 window.nativeVersion = '2.0.1'
  if (window.nativeVersion !== '1.2.3') {
    console.warn('前端与原生版本不匹配!');
  }
</script>

但这样硬编码版本号根本没法自动化,CI/CD 时也容易出错。求问大家是怎么处理这种多端资源版本对齐问题的?

我来解答 赞 7 收藏
二维码
手机扫码查看
1 条解答
Zz星瑶
Zz星瑶 Lv1
原生端搞个version.json存当前版本,web请求接口获取最新bundle路径,别用硬编码。例如:

// 原生端提供接口
fetch('/version').then(res => res.json()).then(data => {
const script = document.createElement('script');
script.src = ./js/app_${data.version}.js;
document.body.appendChild(script);
});


发版时把version.json和bundle一起打包到assets里。
点赞
2026-03-08 07:00