2013-03-20 5 views

risposta

8

ho trovato qui la risposta: http://dev.wavemaker.com/wiki/bin/wmdoc_6.5/PhoneGap?xpage=print#HTheconnectiontotheserverwasunsucessful28file3A2F2F2Fandroidasset2Fwww2Findexhtml29

6,1 La connessione al server è stato unsucessful (file: /// android_asset/www/index.html)

DOVE: Quando si avvia l'applicazione su An dispositivo droide.

Qualsiasi cosa venga inserita nel file index.html che richiede una risorsa remota causerà l'errore sopra riportato per i dispositivi Android, e l'applicazione morirà. Il debugger di Weinre è una causa comune di questo errore .

Soluzione: Spostare il caricamento delle risorse remote da index.html e nell'applicazione in cui non funzionerà correttamente.

+1

ma non so ancora cosa: "Sposta il caricamento delle risorse remote fuori index.html e nella tua applicazione dove fallirà tranquillamente. " significa, esattamente dove spostarlo da index.html? – Vanddel

+0

Esattamente quello che era il mio problema - grazie mille –

+0

Questo era anche il mio problema. Ho dimenticato di rimuovere lo script di debug di weinre da index.html –

-4

Si dovrebbe usare:

file:///android_asset/www/index.html 

come URL

+2

dove lo uso esattamente? Sto usando PhoneGap quindi ho solo un file html e un file JS. – Vanddel

+0

Non lo so, dove hai usato quello con '#' ... –

+0

questa è la cosa, non l'ho usato, l'app funziona correttamente quando c'è una connessione internet altrimenti mostra questo errore quindi si blocca. – Vanddel

13

Ciò significa che nel tuo index.html stai utilizzando una risorsa che richiede l'accesso a Internet. Guarda il tuo index.html e cerca qualsiasi file CSS, javascript o Cordova che sia collegato direttamente da internet. In tal caso, è necessario scaricare il file correlato e renderlo locale.

Ho avuto questo stesso problema quando ho collegato il mio file cellulare JS Jquery direttamente in questo modo:

<script type="CSS/javascript" src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.js"> 

quello che ho fatto è stato scaricato il file jquery.mobile-1.3.0.js e l'aveva collocata a livello locale all'interno della mia cartella www. Questo ha risolto il mio problema.

+1

ma l'intera app usa Internet che emette una richiesta API che non è locale, non posso inserirli localmente. c'è un modo per avvisare l'utente che lui/lei dovrebbe essere connesso a internet per usare l'app? – Vanddel

+0

Sì, Cordova/PhoneGap consente di verificare la connessione Internet. Questo link potrebbe aiutarti (non sono sicuro della versione che utilizzi): http://cordova.apache.org/docs/en/2.5.0/cordova_connection_connection.md.html#Connection. In base alla risposta ricevuta utilizzando questa funzione di connessione, è possibile impostare un messaggio di avviso onDeviceReady() – GenieWanted

0

Un tag di accesso vuoto consente l'accesso a tutte le risorse esterne.

<access origin="*" /> - a wildcard access tag allows access to all external resource. 

In caso contrario, è possibile specificare domini specifici:

--> 
    <access origin="127.0.0.1*"/> <!-- allow local pages --> 
<!-- 
<access origin="http://phonegap.com" /> - allow any secure requests to http://honegap.com/ 
<access origin="http://phonegap.com" subdomains="true" /> - same as above, but including subdomains, such as http://build.phonegap.com/ 
<access origin="http://phonegap.com" browserOnly="true" /> - only allows http://phonegap.com to be opened by the child browser. 
--> 

Spero che questo aiuti.

+0

per l'app o lato server? –

0

Seguo lo "quick started guie" e ho lo stesso problema. Ma l'ho risolto. Il mio problema era una discordanza tra il phonegap scaricato e la guia seguita.

Dovete essere sicuri che questo dettaglio: - Into intex.html si collega corretta js versione dello script (ad esempio: cordova-2.7.0.js) - Deve matchs scaricato la versione phonegab. La versione di phonegab e lo script js collegato devono corrispondere.

Spero che questo ti aiuti.

4

devi solo rinominare la 'index.html' a 'main.html', per esempio, e creare una nuova (fittizio) 'index.html' che hanno solo per reindirizzare al 'main.html'

contenuti del nuovo 'index.html':

<!doctype html> 

<html> 
    <head> 
     <title>Title</title> 
     <script> 
      window.location='./main.html'; 
     </script> 
    </head> 
    <body>  
    </body> 
</html> 
+0

Wow! Grazie a questo post.Ha funzionato molto bene. Ho costruito con successo un'app Web Sencha Touch utilizzando PhoneGap + Eclipse. –

+0

Penso che questo non funzionerà se hai bisogno dell'API cordova (cordova.js) fornita dall'app. – Uri

+0

Non mi piace. Qual è la differenza ? (tecnico) –

1

ho trovato la risposta.

Includi il phonegap.js all'interno del tag <head>. È richiesto da PhoneGap durante il tempo di costruzione.

<head> 
<script src="phonegap.js"></script> 
</head> 

Non è necessario scaricare phonegap.js. Tutto ciò che serve è includere il codice come mostrato. Durante la build, phonegap lo cercherà e lo includerà automaticamente. In caso contrario, quando si esegue l'applicazione nativa, l'applicazione cercherà phonegap.js sul server di PhoneGap e ciò richiede troppo tempo. Alla fine il carico dell'applicazione si interrompe con il messaggio di errore visualizzato.

Wow! Ci posso credere Mi sono imbattuto in questo problema e mi sono scoraggiato e ho quasi rinunciato a usare PhoneGap. Tuttavia, ho letto sul sito web di PhoneGap sulla phonegap.js sotto il sottotitolo di seguito

https://build.phonegap.com/docs/app-overview

"Assicurandosi È comunque possibile accedere l'API PhoneGap"

"Una volta che hai eliminato la PhoneGap .js è necessario fare in modo che l'applicazione può ancora accedere all'API PhoneGap.

per farlo, è sufficiente verificare che sia fatto il seguente riferimento nel vostro index.html"

<script src="phonegap.js"></script> 

Questo è come per magia. Funziona.

Saluti a tutti.

0

Assicurati di aver incluso lo script phonegap.js o cordova.js nella tua pagina. Funzionerà solo sul tuo dispositivo mobile.

Problemi correlati