2009-12-30 19 views
5

Oggi stavo sbattendo la testa contro un muro cercando di far funzionare una WebView. Di seguito è riportato il codice nella classe principale:Perché Android WebView visualizza uno schermo nero?

public class fkyougoogle extends Activity { 
    /** Called when the activity is first created. */ 
WebView webview; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     webview = (WebView) findViewById(R.id.webview); 
     webview.getSettings().setJavaScriptEnabled(true); 
     // WORKS 
     //webview.loadUrl("http://www.google.com"); 
     // DOESN'T WORK 
     //webview.loadUrl("http://www.theregister.co.uk"); 
     //webview.loadData("<html><body>hello</body></html>", "text/html", "utf-8"); 
     //webview.loadDataWithBaseURL("fake://", "<html><body>hello</body></html>", "text/html", "utf-8", "http://www.theregister.co.uk/"); 

    } 
} 

Questo è "Ciao, Webview" l'esempio di Google. Se utilizzo una WebView e provo ad accedere a www.google.com, funziona perfettamente. Se provo ad accedere a qualsiasi altro sito, fallisce includendo loadData e visualizza solo una schermata nera nell'emulatore. Alla fine mi piacerebbe leggere da un file locale.

è incluso nel tag manifest e lo schema XML è uguale all'esempio Hello Webview.

Mi manca qualcosa di ovvio qui? :(

+0

Questo è l'ultimo SDK e le API di Google :) – Biz

+0

Hai provato a commentare la chiamata a setJavaScriptEnabled? – CaseyB

+0

Cosa dice 'adb logcat' quando viene visualizzata la schermata nera? –

risposta

0

Prova UTF-8 invece di utf-8 per le ultime due tentativi non ho alcun problema di caricamento http://www.theregister.co.uk utilizzando lo stesso codice -. Tentare di caricarla nel browser integrato app, e se fallisce, si sta forse incontrando una sorta di firewall edizione/proxy.

Here are a few projects dimostrando semplici utilizzi di WebView, da uno dei miei libri.

7

Provare a cambiare

android:layout_width="wrap_content" 
android:layout_height="wrap_content" 

al

android:layout_width="fill_parent" 
android:layout_height="fill_parent" 

nel vostro main.xml livello superiore LinearLayout

dovrebbe apparire come questo:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"> 

    <WebView 
     android:id="@+id/webview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
    /> 

</LinearLayout> 
+0

Ho avuto lo stesso problema del poster, questo lo ha risolto per me. Grazie Tyler! –

+1

Intendi dire che i parametri di layout hanno qualche influenza su quali URL può caricare o meno la webview? –

+0

Secondo: [ViewGroup.LayoutParams FILL_PARENT] (http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html#FILL_PARENT) Questo valore è obsoleto partire API livello 8 e sostituita da MATCH_PARENT –

0

Ho avuto simile problema di una WebView essere completamente vuoto, ma il mio caso è stato causato da un mancato android.permission.INTERNET usa-autorizzazione.

Problemi correlati