Come è possibile caricare JavaScript e immagini sulla mia pagina HTML remota dalla cartella delle risorse (o semplicemente da una risorsa locale)?WebView Android JavaScript dalle risorse
risposta
Risposta:
1. è necessario caricare il codice HTML in stringa:
private String readHtml(String remoteUrl) {
String out = "";
BufferedReader in = null;
try {
URL url = new URL(remoteUrl);
in = new BufferedReader(new InputStreamReader(url.openStream()));
String str;
while ((str = in.readLine()) != null) {
out += str;
}
} catch (MalformedURLException e) {
} catch (IOException e) {
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return out;
}
2. Carico WebView con URL di base:
String html = readHtml("http://mydomain.com/my.html");
mWebView.loadDataWithBaseURL("file:///android_asset/", html, "text/html", "utf-8", "");
In questo caso particolare si dovrebbe avere tutti i file .js che si desidera utilizzare nella pagina per risiedere da qualche parte nella cartella "assets" del progetto. Per esempio:
/MyProject/assets/jquery.min.js
3. Nella tua pagina html a distanza è necessario caricare js e file css che risiedono nella vostra applicazione, come:
<script src="file:///android_asset/jquery.min.js" type="text/javascript"></script>
lo stesso vale per tutti gli altri locali risorse come immagini, ecc loro percorso deve iniziare con
file:///android_asset/
Un WebView avrebbe prima caricare il codice HTML grezzo che ci avete fornito come stringa, poi scegliere .js, css e altre risorse locali e quindi caricare i contenuti remoti.
Perché dovresti fornire il percorso assoluto se imposti il percorso di base con 'loadDataWithBaseURL'? Inoltre, sembra che questo si rompa in 4.1+. :( – Maarten
Questo sembra funzionare in 4.1+ per me, ed è finora l'unico modo in cui sono stato in grado di caricare HTML con javascript che non è codificato nella cartella delle risorse. – Chris
Se l'html è già remoto senza possibilità per modificare il programma è necessario identificare questi file e sostituire la stringa dal * String html * – htafoya
Se si crea dinamicamente il codice HTML e quindi si utilizza loadDataWithBaseURL, assicurarsi che tutte le risorse locali, ad es. javascript nella cartella delle risorse sono indicati nell'HTML come file: /// (I ore trascorse a risolverlo)
puoi dirmi in dettaglio come aggiungere dinamicamente (file: //) percorso a .js dopo aver ottenuto html come stringa. – Adi
- 1. Webview Android loadDataWithBaseURL come caricare le immagini dalle risorse?
- 2. Android WebView Javascript getSelection
- 3. Android WebView Javascript abilitato
- 4. Come caricare un'immagine dalle risorse?
- 5. Perdita di memoria di WebView Android durante l'utilizzo di risorse
- 6. In Android, posso utilizzare l'immagine dalle risorse nel layout xml?
- 7. Come utilizzare il database SQLite precaricato in Android dalle risorse
- 8. Come rimuovere le risorse inutilizzate dalle librerie?
- 9. JavaScript non funziona in Android WebView
- 10. Android WebView non mostra animazione javascript
- 11. Disegnare bitmap dalle risorse rispetto ad un'altra
- 12. URL WebView Android con file di font locale nelle risorse?
- 13. Android Webview Redirect loop
- 14. webview android: come cambiare il testo del titolo di avviso javaScript nella webview di Android?
- 15. Leggere il file HTML dalle risorse
- 16. Percorso dalle risorse come contenuto del pulsante
- 17. Javascript iniezione in WebView
- 18. WebView che non carica correttamente le risorse
- 19. Non riesco a leggere AttributeSet dalle mie risorse XML
- 20. C'è qualche motivo per precaricare i drawable dalle risorse?
- 21. programmatica click in Android WebView
- 22. Caricamento di file html in webview su Android dalla cartella delle risorse utilizzando Android Studio
- 23. Cattura reindirizzamenti di pagine tramite javascript nella WebView di Android
- 24. Posso passare un oggetto Javascript a un WebView Android?
- 25. Android 4.2.1, WebView e interruzioni di interfaccia javascript
- 26. Android: problema con il debug di javascript in webview
- 27. Modifica alert() del titolo (javascript nel Android Webview)
- 28. Inject JavaScript prima di html caricato con Android WebView
- 29. Chiama la funzione Java da JavaScript tramite Android WebView
- 30. Rileva clic sul pulsante HTML tramite javascript in Android WebView
È necessario inserire la risposta in una risposta in modo da poter contrassegnare questo chiuso. –