发布适用于Android 9的Cordova应用程序(Android API 28)获取互联网连接错误

发布适用于Android 9的Cordova应用程序(Android API 28)获取互联网连接错误,android,cordova,Android,Cordova,我使用HTML5和Javascript开发cordova跨平台应用程序。但最近我在安卓系统上遇到了一些问题 以前我用的是Cordova7,android版本是6.3 它支持android API 16到26。但根据谷歌的新规定,从2019年8月起,所有应用程序必须以安卓API 28为目标,即安卓8和安卓9 Cordova的最新版本是Cordova 9,它支持Android 8。Cordova没有发布任何支持Android 9的版本 所以要开发针对API 28的应用程序,我必须使用安卓8。但我在应

我使用HTML5和Javascript开发cordova跨平台应用程序。但最近我在安卓系统上遇到了一些问题

以前我用的是Cordova7,android版本是6.3 它支持android API 16到26。但根据谷歌的新规定,从2019年8月起,所有应用程序必须以安卓API 28为目标,即安卓8和安卓9

Cordova的最新版本是Cordova 9,它支持Android 8。Cordova没有发布任何支持Android 9的版本

所以要开发针对API 28的应用程序,我必须使用安卓8。但我在应用程序方面遇到了一些问题。以前我的应用程序运行良好。当我用Cordova 9和安卓8开发应用程序时,所有安卓8及以下版本的手机都可以正常工作,但安卓9中显示错误。特别是AJAX请求

我使用http(而不是https)向服务器发送AJAX请求。在一些博客中,我看到它可能会导致错误。但我看不到任何修复方法,目前我没有选择使用https

另一种方法是设置
,它在所有android版本(6~9)中都可以正常工作,但当我在Google Play store中使用此配置上传时,它会显示警告,将目标API更新为28

那么现在我该怎么办

提前谢谢

注: 我找到了一种使用http的方法,但一点也不懂。如果有人能解释我会很高兴的。链接如下:


经过长时间的搜索,我发现
“默认情况下”
,Android 9不允许向http发送请求。它只允许向https URL发送请求。所以我所要做的就是将我的服务器从http升级到https。不用担心,没那么难。如果您使用plesk进行服务器管理,只需点击两次即可免费安装“Lets Encrypt”SSL证书并自动续订。它还显示了Mozilla Firefox中的绿条。不过,若您使用的不是Plesk,那个么请转到该网站并生成一个,然后将其安装到您的服务器上。就这些


你仍然可以在Android9中请求http URL,但对我来说还是有点太复杂了,所以我说通过。另外,从http升级到https也给了我更多的安全性:)

您所要做的就是在AndroidManifest.xml应用程序标记上包含以下密钥对值:

android:UseClearTextTraffic=“true”

在API 28上,此属性默认设置为false(出于安全原因),在以前的Android API中为true。

和提供的响应都是很好的答案,但是对于了解如何在Android 9中启用不安全http连接的人,请检查此答案:

请注意,如果您正在使用Cordova,直接修改
AndroidManifest.xml
(Android平台)文件不是一个好主意,而是编辑
config.xml
(项目配置文件)


您将有两个工具来实现它:以及,在Cordova文档中有详细描述。

您有在android 9中使用http URL的替代解决方案吗?我还没有尝试过。