Cordova Android выпускает сборки Ajax, которые не работают

#android #cordova #lets-encrypt

Вопрос:

Вызовы Ajax работают не только в сборках выпуска, но и в отладочных сборках. Я делаю все звонки по протоколу https. Ошибок CORS нет. Обратите внимание, что проблема появляется только на Android, а не на iOS.

Я использую Let's Encrypt сертификаты SSL на задней панели.

  SHA256withRSA
 

Я перепробовал ВСЕ доступные исправления, ПОЭТОМУ:

  <plugin name="cordova-plugin-enable-cleartext-traffic" space="^2.1.0" />  
 

Я проверил, что у меня есть android:usesCleartextTraffic="true" в манифесте в узле приложения

Я добавил к config.xml

  <access origin="*" />    
 <allow-navigation href="*" />
 <preference name="AndroidInsecureFileModeEnabled" value="true" />
 

а также

  <edit-config xmlns:android="http://schemas.android.com/apk/res/android" file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
        <application android:networkSecurityConfig="@xml/network_security_config" />
 </edit-config>
 

И в res/xml созданном файле network_security_config.xml с содержимым

  <?xml version="1.0" encoding="utf-8"?>
 <network-security-config>
      <domain-config cleartextTrafficPermitted="true">
           <domain includeSubdomains="true">mydomain.com</domain>
      </domain-config>
 </network-security-config>
 

Я проверил, что мой Let's Encrypt SSL-сертификат действителен, это так. У меня больше нет плагина белого списка из-за Android 10

Версии являются

 Cordova Android 10.1.1
Cordova 10.0.0
 

Протестировано на реальном устройстве под управлением Android 6.0.1 (должны поддерживать старые телефоны)

Ничего не работает. Пожалуйста, помогите

Ответ №1:

Я отвечу на свой собственный вопрос, это может сэкономить кому-то МНОГО времени. Проблема в том, что я использую SSL-сертификаты let’s encrypt на Windows Server через Win-Acme, и я тестировал на Android 6.1.0. После этого сообщения я только что заметил, что SSL-сертификаты Let’s Encrypt больше не будут работать на Android

Протестировано на Android 11, и это просто сработало.

Ответ №2:

Вам следует проверить, нет ли у вас каких-либо ошибок. Если вы запустите свое приложение file: , вам может понадобиться AndroidInsecureFileModeEnabled config.xml

Я предлагаю вам использовать загрузчик webviewasset с cordova-android@10. Пожалуйста, ознакомьтесь с объявлением https://cordova.apache.org/announcements/2021/07/20/cordova-android-10.0.0.html

Комментарии:

1. Как говорится в моем посте, все звонки мои по HTTPS, и все отлично работает при отладке, в том числе на физическом устройстве, ошибок CORS нет. Проблема только в сборках выпуска. Все активы загружаются нормально, проблема в AJAX. Также уже был включен AndroidInsecureFileModeEnabled.