So che questa domanda è stata richiesta in diversi formati su questo forum, ma nessuna delle risposte - accettata o meno che ho trovato lì ha aiutato io fino ad ora.WebView non esegue il rendering della pagina HTML locale all'avvio dell'app su Android 4.0.x Ice Cream Sandwich
Sto lavorando a un'app ibrida che utilizza Android nativo, HTML e Flex SDK di Adboe (senza alcun framework come PhoneGap ecc., Codice semplice che utilizza la propria WebView di Android).
Ecco il problema che sto affrontando:
Quando l'applicazione viene avviata, in un primo momento l'attività "AppEntry" per l'SDK Flex è attivato, è un'attività vuoto che definisce semplicemente il contesto e impostazioni iniziali per Flex SDK. Successivamente, viene avviato il programma nativo MainActivity che utilizza una WebView per caricare il progetto HTML. Su Android 4.0.x (ICS), la visualizzazione Web risulta vuota (bianca) anche se l'URL è stato caricato (onPageFinished() viene chiamato correttamente per l'URL in questione). Ciò accade la prima volta che l'app viene installata e avviata, dopo aver arrestato l'app (rimuovendola dalla barra delle applicazioni recenti), la pagina viene caricata come previsto. Ripetuti rilanci come questo riproducono il problema a volte ma con frequenza imprevedibile.
Alcune cose da tenere in considerazione:
a causa di vincoli di Flex SDK, questi file HTML non possono essere memorizzati direttamente nella cartella '/ attività', ma una struttura di directory contenute all'interno della cartella asset.
Il problema si verifica solo su Ice Cream Sandwich (known issue I guess)!
Roba che ho già provato:
- accelerazione hardware è spento (on/off non importa, testati con entrambi)
2.
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
settings.setSupportMultipleWindows(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setLoadsImagesAutomatically(true);
settings.setDomStorageEnabled(true);
settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
settings.setSaveFormData(true);
settings.setAllowFileAccess(true);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
settings.setAllowContentAccess(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
settings.setAllowFileAccessFromFileURLs(true);
settings.setAllowUniversalAccessFromFileURLs(true);
}
}
settings.setAppCacheEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setLoadsImagesAutomatically(true);
boolean enableZoom = true;
settings.setBuiltInZoomControls(enableZoom);
settings.setSupportZoom(enableZoom);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ECLAIR_MR1) {
initializePluginAPI(webView);
}
settings.setDatabaseEnabled(true);
Il problema sta uccidendo i commenti di revisione della mia app sul Play Store. Qualsiasi aiuto o intuizione sarebbe apprezzato.
io non sono sicuro di come sia possibile mescolare Android con AIR e Flex SDK, ma si potrebbe provare a utilizzare il controllo AIR html e poi incorporare il file HTML e quindi la creazione di una stringa da quel modo dinamico e l'impostazione del htmlText di la visualizzazione Web o usa loadString se si utilizza un'istanza del caricatore HTML. –
In realtà non è una singola pagina HTML ma un'intera applicazione HTML. Funziona come previsto per le versioni ad eccezione di Android 4.0.x. Pertanto sto cercando una correzione per 4.0 (ICS). –
Prova a caricare la webview 500 millisecondi (o qualcosa di simile) in seguito utilizzando una chiamata 'postDelayed'. Questo sembra un problema di carico/sincronizzazione, il caricamento del contenuto web un po 'più tardi potrebbe risolverlo. –