React Native WebView打包APK/AAB后安卓端白屏问题求助
安卓打包后WebView白屏问题解决方案
1. 检查并添加网络权限
确保安卓AndroidManifest.xml(路径:android/app/src/main/AndroidManifest.xml)中添加网络权限:
<uses-permission android:name="android.permission.INTERNET" />
如果目标URL是HTTP协议,Android 9及以上默认禁止明文流量,需配置网络安全策略:
- 在
android/app/src/main/res/xml下创建network_security_config.xml,内容如下:
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config cleartextTrafficPermitted="true" /> </network-security-config>
- 在
AndroidManifest.xml的<application>标签中添加引用:
android:networkSecurityConfig="@xml/network_security_config"
2. 修正WebView加载状态逻辑
当前代码中setLoad(!load)存在异步更新的状态不同步问题,改为函数式更新确保状态正确:
onLoadStart={() => { setLoad(prev => true); }} onLoadEnd={() => { setLoad(prev => false); }}
3. 禁用WebView代码混淆(若开启混淆)
如果项目开启了代码混淆,在android/app/proguard-rules.pro中添加规则保护WebView相关类:
-keep class com.facebook.react.views.webview.** { *; } -dontwarn com.facebook.react.views.webview.**
4. 验证目标URL的可访问性
- 确认
my-uri是有效可访问地址,在安卓设备浏览器中直接打开该URL,检查是否能正常加载。 - 如果是本地HTML文件,确保打包后文件路径正确,比如使用
require('./index.html')而非相对路径字符串。
5. 添加混合内容支持(若需要)
如果目标页面存在HTTP和HTTPS混合资源,在WebView中添加配置:
mixedContentMode="compatibility"
内容的提问来源于stack exchange,提问作者Min Pyae Kyaw
相关产品推荐
相关产品推荐

