You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级至Cordova 12后Android编译出现低版本白屏问题

Cordova 12 Android 10以下版本白屏问题解决方案
  • 降级cordova-android版本
    Cordova 12默认配套的cordova-android@12.x对Android 9及以下版本的系统WebView兼容性较差,可尝试降级到更稳定的11.x版本:
    cordova platform remove android && cordova platform add android@11.0.0

  • 配置Android WebView兼容参数
    在项目根目录的config.xml中添加针对低版本Android的配置:

<platform name="android">
    <preference name="AndroidXEnabled" value="true" />
    <preference name="WebViewEngine" value="system" />
    <preference name="OverrideUserAgent" value="Mozilla/5.0 (Linux; Android %s) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/%s Mobile Safari/537.36" />
    <config-file parent="/manifest/application/activity[@android:name='MainActivity']" target="AndroidManifest.xml">
        <meta-data android:name="android.webkit.WebView.EnableSafeBrowsing" android:value="false" />
        <android:hardwareAccelerated="false" />
    </config-file>
</platform>
  • 添加Polyfill并修正TS编译配置
    仅修改tsconfig的target不足以解决低版本浏览器的API缺失问题,需补充Polyfill:
  1. 安装依赖:npm install core-js@3
  2. 在项目入口文件(如main.ts)顶部引入:
import 'core-js/stable';
import 'regenerator-runtime/runtime';
  1. 确保tsconfig.json配置正确:
{
  "compilerOptions": {
    "target": "es5",
    "lib": ["es2015", "dom"],
    "module": "esnext",
    "moduleResolution": "node",
    "esModuleInterop": true
  }
}
  • 查看设备日志定位具体报错
    通过ADB命令抓取低版本设备的WebView日志,定位白屏的具体原因:
    adb logcat | grep WebView
    根据日志中提示的未支持API,针对性添加Polyfill或修改代码。

  • 放宽内容安全策略(CSP)
    若CSP设置过于严格,低版本WebView可能无法加载资源,可在index.html中调整:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-inline' 'unsafe-eval' data: gap:; style-src 'self' 'unsafe-inline'; media-src *">

内容的提问来源于stack exchange,提问作者Michel TANGA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 05:20:27