cordova 请求http接口或socket失败

本文介绍了将WebApp打包成Android App后遇到的HTTP通信问题,问题出现在Android 6.0及以上版本,由于默认启用的TLS保护导致无法进行http网络请求。解决方法包括在config.xml中添加允许http请求的配置,使用https,或者降低targetSdkVersion,以及创建网络安全配置文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当前环境

targetSdkVersion: 28
vue: 2.6.11
cordova-android: 8.1.0

问题

最近将webApp打包成android APP之后发现无法HTTP通信,但是通过访问浏览器ip,是可以HTTP通信的!
如图通过vconsole插件可以看到HTTP接口没有返回!
在这里插入图片描述

出现问题的原因

问题出现的原因是因为Android高版本(Android 6.0)以上默认使用TLS保护用户信息,在Android高版本对非加密的明文传输有要求,也即默认启用了TLS保护,使得该应用无法进行http网络请求,而https则不会受影响,同样地,如果应用嵌套了webview也会受这限制。

解决方法

  1. 最快捷的方式: 在config.xml中添加
    <edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/application">
           <activity android:usesCleartextTraffic="true" />
    </edit-config>
    

这样Cordova build的时候就会

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值