额,前段时间用 cordova 包了个 vue 项目,跑真机,完美。跑公司安卓系统虚拟机,跨。
原因找了很久,最后发现是路由的问题,使用了 createWebHistory ,去掉了 hash ,虽然是打包APP看不到路由,就是我手贱喜欢搞些有的没的。
虚拟机安卓系统比较老,很多功能没给上去, webview 的实现也用的很老版本,导致和真机不一样。 navigator 上找不到 cordova 的定义,我猜测, webview 起来的时候 cordova.js 在 navigator 上面做了很多事,而之后跳转路由之后,没带 hash , webview 把 navigator 给覆盖初始化了,而使用了 hash 模式, webview 路由跳转并不会更新内部全局变量。(这只是我的猜测,有大神知道请指点)
改成 createWebHashHistory 就可以了,这个坑让我加班到了10点...