2016-01-07 23 views
7

Sono passato oggi alla nuovissima Cordova - 5.4.1. L'app su iOS funzionava perfettamente ma non su Android. Tutte le richieste restituivano un errore 404, quindi ho approfondito l'argomento e ho scoperto che ho bisogno di "cordova-plugin-whitelist". Ho installato e ha aggiunto <meta http-equiv="Content-Security-Policy" content="default-src * 'unsafe-inline' 'unsafe-eval'"> Cordova Android Impossibile caricare la risorsa: net :: ERR_NAME_NOT_RESOLVED

all'intestazione di index.html nonché <access origin="*" /><allow-navigation href="*"/> al file config.xml

e ora ogni richiesta al mondo esterno è tornando a "rete :: ERR_NAME_NOT_RESOLVED"

In AndroidManifest.xml Ho queste due linee quindi suppongo che non sia un problema con l'accesso a Internet. <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

Sono andato con molte domande sul SO correlate a Cordova-plugin-whitelist, ma nulla sembra funzionare

mio config.xml `` `

<?xml version='1.0' encoding='utf-8'?> 
<widget id="app" version="1.1.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> 
    <name>app</name> 
    <description> 
     A sample Apache Cordova application that responds to the deviceready event. 
    </description> 
    <author email="[email protected]" href="http://cordova.io"> 
     Apache Cordova Team 
    </author> 
    <content src="index.html" /> 
    <allow-navigation href="*" /> 
    <platform name="ios">...splash screens and icons</platform> 
    <platform name="android">...splash screens and icons</platform> 
    <icon src="resources/android/icon/drawable-xhdpi-icon.png" /> 
    <preference name="SplashScreen" value="screen" /> 
    <preference name="SplashScreenDelay" value="3000" /> 
    <preference name="Orientation" value="default" /> 
    <feature name="phonegap-parse-plugin"> 
     <param name="id" value="org.apache.cordova.core.parseplugin" /> 
     <param name="url" value="https://github.com/fastrde/phonegap-parse-plugin" /> 
    </feature> 
    <feature name="Insomnia (prevent screen sleep)"> 
     <param name="id" value="nl.x-services.plugins.insomnia" /> 
     <param name="url" value="https://github.com/EddyVerbruggen/Insomnia-PhoneGap-Plugin.git" /> 
    </feature> 
    <feature name="Toast"> 
     <param name="id" value="cordova-plugin-x-toast" /> 
     <param name="url" value="https://github.com/EddyVerbruggen/Toast-PhoneGap-Plugin.git" /> 
    </feature> 
    <feature name="Cordova SMS Plugin"> 
     <param name="id" value="com.cordova.plugins.sms" /> 
     <param name="url" value="https://github.com/cordova-sms/cordova-sms-plugin.git" /> 
    </feature> 
    <feature name="OpenTokCordovaPlugin"> 
     <param name="id" value="com.tokbox.cordova.opentok" /> 
     <param name="url" value="https://github.com/doxyme/cordova-plugin-opentok" /> 
    </feature> 
</widget> 

` ``

+0

Si sta utilizzando la whitelist di plug-in-cordova e si è configurato il criterio di sicurezza del contenuto? Quale versione di Cordova stavi usando in precedenza? – QuickFix

+0

ho affrontato questo problema. Scopri che è successo quando internet è lento. – Yusuf

risposta

13

Non ho idea di quale fosse il problema ma il riavvio del dispositivo lo ha risolto. Niente in relazione con l'app, solo il telefono ha avuto difficoltà con la connessione a Internet anche se era connesso al Wi-Fi e la potenza del segnale sembrava essere al massimo.

+0

Ha ok.In effetti sarebbe stato strano che 'cordova-whitelist-plugin' fosse coinvolto, dato che' 'con un * Content-Security-Policy * vuoto dovrebbe lasciare che tutto passasse attraverso. Sono contento che hai risolto il tuo problema – arainone

+0

Ho con un Content-Security-Policy vuoto, non ha funzionato finché non ho riavviato il dispositivo. Non riesco a credere che il riavvio del dispositivo abbia risolto anche il mio problema. – alicona

+1

alzato perché ho avuto lo stesso problema perché ho dimenticato di abilitare il wi-fi. –

3

In "config.xml" della tua app, inserisci solo questo:

<allow-navigation href="*" /> 

E rimuovi ciò che hai aggiunto all'intestazione index.html. Se il problema persiste, significa che il problema non è correlato al plug-in della whitelist.

Ho utilizzato questo plug-in in diversi progetti Android e non ho mai dovuto fare altro per consentire alla mia app di comunicare con il back-end.

Spero che questo aiuti!

+1

Sfortunatamente non aiuta. Ho modificato la mia domanda e ho aggiunto config.xml –

+0

Quindi, l'hai provato? e ha avuto lo stesso problema? – arainone

+0

Ah, ho saltato la parte "e rimuovere quello che hai aggiunto index.html". Quando lo faccio ricevo "Non è stato trovato alcun metatag di sicurezza per la sicurezza dei contenuti. Aggiungi uno quando usi il plug-in per il whitelist di cordova-plugin." e le richieste stanno restituendo esattamente lo stesso errore "net :: ERR_NAME_NOT_RESOLVED" –

1

Abbiamo riscontrato un problema simile in cui abbiamo ricevuto l'errore "Impossibile caricare la rete di rete: ERR_NAME_NOT_RESOLVED" su due sistemi diversi dall'emulatore Android in esecuzione in HAXM utilizzando Cordova 6.4.0 e la versione 25 (7.1.1) Android SDK. Semplicemente rimuovendo e aggiungendo il plugin whilelist abbiamo risolto il nostro problema senza cambiando qualsiasi file di configurazione.

0

Avevo lo stesso problema e niente sembrava risolvere ... E ho scoperto che nel mio caso la dimensione dell'immagine dello splashscreen era troppo grande (circa 3,2 MB) ... Ho usato this website per comprimere il file e loro hanno funzionato