Cordova应用iOS及Android调试版运行正常,Android发布版无法连接REST服务器求助
解决Cordova App Bundle无法连接HTTPS 8443后端的问题
嘿,我帮你梳理下这个问题的核心,应该是两个关键因素导致的——config.xml里冲突的网络权限配置,还有没明确指定后端服务器的8443端口,加上切换到App Bundle后Android的网络安全策略有一些细节需要注意。下面是一步步的解决方案:
1. 清理冲突的网络权限配置
你的config.xml里先设置了针对samoperational.co.uk的精准权限,但后面又加了全局允许的配置:
<access origin="*" /> <allow-intent href="*" /> <allow-navigation href="*" />
这不仅会覆盖你之前的限制,更关键的是,Cordova在构建App Bundle时,这种全局配置可能会让非标准HTTPS端口(比如你的8443)的连接被意外拦截。建议删掉这些全局条目,换成精准的配置:
<!-- 明确包含8443端口的后端地址 --> <access origin="https://www.samoperational.co.uk:8443" /> <allow-intent href="https://www.samoperational.co.uk:8443/*" /> <allow-navigation href="https://www.samoperational.co.uk:8443/*" /> <allow-navigation href="file:*" /> <!-- 保留本地文件导航的必要权限 -->
2. 添加Android网络安全配置(适配App Bundle)
从Android 9(API 28)开始,系统默认对网络请求有更严格的限制,哪怕是HTTPS连接,非标准端口也需要明确声明。你需要创建一个网络安全配置文件:
- 在项目根目录创建
res/xml/network_security_config.xml,内容如下:
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="false"> <domain includeSubdomains="true">samoperational.co.uk</domain> <!-- 明确允许8443端口的HTTPS连接 --> <domain includeSubdomains="true">samoperational.co.uk:8443</domain> </domain-config> </network-security-config>
- 然后在config.xml的Android平台部分添加这个配置的引用:
<platform name="android"> <!-- 保留你现有的其他配置 --> <config-file target="AndroidManifest.xml" parent="/manifest/application" mode="merge"> <application android:networkSecurityConfig="@xml/network_security_config" /> </config-file> </platform>
3. 检查并更新内容安全策略(CSP)
打开你的index.html,找到CSP的meta标签,确保它允许连接到你的后端服务器:
<meta http-equiv="Content-Security-Policy" content="default-src 'self' https://www.samoperational.co.uk:8443; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; media-src *;">
这里一定要把https://www.samoperational.co.uk:8443加进去,否则前端的AJAX请求会被CSP拦截。
4. 重新构建App Bundle
最后,清理旧的构建缓存,重新生成App Bundle:
cordova clean android cordova build android --release -- --packageType=bundle
你可以用bundletool把生成的.aab转换成APK做本地测试,或者直接上传到Google Play内部测试轨道验证连接是否正常。
内容的提问来源于stack exchange,提问作者cribo
相关产品推荐
相关产品推荐

