Córdoba - Las solicitudes XHR sobre el trabajo en el emulador de Android, pero no en los teléfonos

DDD:

así que tengo una aplicación existente que ha estado en la tienda de aplicaciones desde hace bastante tiempo, a partir de 3 días que estaba recibiendo más consultas de soporte diciendo mi aplicación no se pudo conectar a mi servicio.

Ahora que finalmente ha sucedido a mí en mis dispositivos Android - todo funciona perfectamente para iOS y para Android perfectamente el emulador - pero nada en el mundo real.

He mirado por lo que puede por el paso de depuración con Cordova y pasa la multa prueba lista blanca. Mi primer petición XHR funciona bien, pero las subsiguientes siempre fallan hasta que cierre por completo la aplicación y volver a abrir.

Estoy utilizando [email protected]- También he intentado[email protected]

Mis Content-Security-Policymiradas como este

<meta http-equiv="Content-Security-Policy" content="default-src * 'self' gap:; img-src http://*.my-site.com.au https://*.my-site.com.au https://*.my-site.com http://*.my-site.com https://*.googleusercontent.com http://*.googleapis.com  https://google.com https://*.google.com https://*.googleapis.com https://*.gstatic.com 'self' data:; style-src http://*.googleapis.com https://*.googleapis.com 'self' 'unsafe-inline'; script-src 'self' https://*.googleapis.com http://*.googleapis.com http://maps.google.com http://*.gstatic.com https://*.gstatic.com https://maps.google.com 'unsafe-inline' 'unsafe-eval'">

Mi config Córdova

<allow-navigation href="*" />
<allow-navigation href="http://*/*" />
<allow-navigation href="https://*/*" />

He intentado añadir / eliminar / reemplazar el anterior / cada combinación con <access origin="*" />, pero sin suerte.

Mi respuesta XHR siempre se ve como la siguiente

xhr.responseUrl = "http://my-site.com/?d=12343902i49"
xhr.status = 0
xhr.responseText = ""

He depurado paso a la solicitud XHR por lo que podría tener en el Córdoba Plugin, a paso de depuración de la Whitelist.java, pero todo vuelve fina y lo hace con éxito a la línea

// If we don't need to special-case the request, let the browser load it.
return null;

de la función

WebResourceResponse shouldInterceptRequest(WebView view, String url)

en org.apache.cordova.engine.SystemWebViewClient.java

Mi Manifiesto Android tiene la siguiente

<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="28" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-feature android:name="android.hardware.location.gps" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECORD_VIDEO" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />

Estoy usando [email protected], plataforma de Córdoba [email protected]

He pasado varias horas tratando de cavar más profundo, lo que me estoy perdiendo aquí? Cualquier ayuda sería muy apreciada!

jcesarmobile:

A medida que el problema desaparece si se baja la targetSDK, es probable que la usesCleartextTrafficmencionada por Nidhin Josehp. Sólo afecta a los dispositivos Android 8 o posterior cuando la orientación SDK de 28 o mayor.

En lugar de editar manualmente el AndroidManifest.xmlque se sugieren (nunca se debe editar manualmente en aplicaciones Cordova) se puede añadir esto a laconfig.xml

<platform name="android">
  <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
      <application android:usesCleartextTraffic="true" />
  </edit-config>
</platform>

Es posible que tenga que cambiar su etiqueta de widget en config.xmla ser algo como esto:

<widget id="com.your.app.id" version="1.0.0"
xmlns="http://www.w3.org/ns/widgets" 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:cdv="http://cordova.apache.org/ns/1.0">

(La adición es la xmlns:android="http://schemas.android.com/apk/res/android")

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=229565&siteId=1
Recomendado
Clasificación