android 9(api 28)起默认禁止明文http请求,导致webview白屏并报net::err_cleartext_not_permitted;需在androidmanifest.xml的application标签中添加android:usescleartexttraffic="true"临时解决,上线前必须切https或配置network_security_config.xml精准放行。

直接用 WebView 套壳是最可行、最可控的路径,不是“一键转换”,而是把 HTML 当作资源加载进原生容器——你得自己管好路径、协议、权限和初始化时机。
Android 上白屏或报 net::ERR_CLEARTEXT_NOT_PERMITTED 怎么办
这是 Android 9(API 28)起的默认限制:禁止明文 HTTP 请求。即使你只是 file:///android_asset/index.html,只要页面里写了 http://api.example.com,就会被拦截。
- 调试阶段可在
AndroidManifest.xml的<application></application>标签下加:android:usesCleartextTraffic="true" - 上线前必须切 HTTPS;若后端不支持,至少用代理中转或改用本地 mock 数据
- 检查所有 JS 中的
fetch、XMLHttpRequest、图片src、CSS@import,不能含http:// - 别信“打包工具自动处理 HTTP”——它只管打包,不管运行时网络策略
iOS 打开就白屏或报 Webview is not defined
iOS 的 WKWebView 不像 Android 那样默认立即可用,尤其在 index.html 直接执行 JS 时,WebView 实例可能还没初始化完成。
- 确保 JS 入口逻辑包裹在
window.addEventListener('DOMContentLoaded', ...)或document.addEventListener('deviceready', ...)(Cordova 场景) - Info.plist 必须配置
NSAppTransportSecurity,允许file://协议:<key>NSAllowsArbitraryLoadsInWebContent</key><true></true> - 不要用
./js/app.js这类相对路径——iOS WKWebView 对 base URL 解析更严格,统一用/js/app.js或完整路径 - 如果用了 Cordova/Capacitor,确认已运行
npx cap sync ios,否则cordova.js或capacitor.js不会复制进 Xcode 工程
用 HBuilderX 云打包时图标不显示、启动页黑屏
HBuilderX 的 5+App 模式依赖 manifest.json 和资源路径强约定,错一个字段或少一个文件,UI 就断掉。
-
icon字段必须指向res/icons/下的 PNG 文件,且尺寸齐全(72×72、96×96、120×120、152×152 等),缺一不可 -
launch_path必须是相对路径,如index.html,不能写./index.html或/index.html - 所有 HTML/CSS/JS 中的资源引用,必须用相对路径,且不能跨出
www/目录结构(HBuilderX 会把整个www打包进 APK/IPA) - 云打包不校验
manifest.json语法,但字段缺失或拼写错误(比如写成icong)会导致静默失败
Cordova build android 出来的 APK 安装不了或闪退
cordova build android 默认生成的是 debug 版,未签名、无 ABI 过滤,真机安装常失败。
- 先运行
cordova build android --release,生成app-release-unsigned.apk - 再用
jarsigner签名(需已有 keystore):jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore app-release-unsigned.apk alias_name - 最后用
zipalign优化:zipalign -v 4 app-release-unsigned.apk app-release.apk - Android 12+ 要求 targetSdkVersion ≥ 31,否则安装时报 “INSTALL_FAILED_VERIFICATION_FAILURE”;在
config.xml里设android-targetSdkVersion="34"
真正卡住人的从来不是“怎么打包”,而是路径写错、协议没切、权限漏配、签名没做——这些细节不会报红,只会让你在真机上反复白屏、闪退、连不上 API。动手前,先打开 Chrome DevTools 连 WebView 或 Safari Web Inspector 看 console 和 Network 面板,比瞎试快十倍。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











