将手机升级到Android 9 Pie API 28修订版6后,Cordova App中出现Ajax错误

时间:2019-01-30 19:40:54

标签: android cordova

我有一个使用Cordova 8.1.2开发并在Android 8.1 Oreo API Level 27 Revision 3下编译的应用程序,可以在Play商店和注册用户中成功使用。

在过去的几周中,一些用户已将手机升级到Android 9.0 Pie,当他们打开应用程序并进行注册或登录操作时,他们会收到Ajax通信,并显示服务器错误。

我已经在Android Studio的开发人员模式下以及在Android 9.0 Pie的Emulator中进行了尝试,并且得到了相同的结果。我使用不同的ajax URL进行了一些测试,而ajax调用从未到达服务器。

有人遇到同样的问题吗?

这是android studio中的错误日志:

2019-01-30 20:29:19.701 1921-1921/? E/netmgr: Failed to open QEMU pipe 'qemud:network': Invalid argument
2019-01-30 20:29:22.351 1754-1900/? E/storaged: getDiskStats failed with result NOT_SUPPORTED and size 0
2019-01-30 20:29:38.714 1925-2029/system_process E/memtrack: Couldn't load memtrack module

控制台中的Ajax错误视图:


    {"readyState":0,"status":0,"statusText":"error"}

2 个答案:

答案 0 :(得分:2)

最后,我解决了这个问题。问题在于,在Android 9 Pie API 28中,默认情况下允许ajax调用https服务。有选项:

  1. 在ajax网址中进行https呼叫
  2. 为您的http网站(view developer android)添加例外

答案 1 :(得分:0)

您需要从我相信的SDK管理器中下载API 28并更新平台工具,然后重新编译您的应用。