为什么Android WebView会显示黑屏?

时间:2009-12-30 17:57:02

标签: android webview

今天下午,我一直在撞墙,试图让WebView工作。以下是主类中的代码:

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/");

    }
}

这是Google的“Hello,Webview”示例。如果我使用WebView并尝试访问www.google.com,那么它可以正常工作。如果我尝试访问任何其他站点,那么它将失败,包括loadData,它只是在模拟器中显示黑屏。最后,我想从本地文件中读取。

包含在清单标记下,XML模式与Hello Webview示例相同。

我错过了一些明显的东西吗? :(

3 个答案:

答案 0 :(得分:8)

尝试更改

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

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

在main.xml顶级LinearLayout

它应该是这样的:

<?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>

答案 1 :(得分:0)

在后两次尝试中,请尝试UTF-8而不是utf-8。使用相同的代码加载http://www.theregister.co.uk没有问题 - 尝试在内置的浏览器应用程序中加载它,如果失败,您可能会遇到某种类型的防火墙/代理问题。

Here are a few projects从我的一本书中展示了WebView的简单用法。

答案 2 :(得分:0)

我有类似WebView完全空白的问题,但我的情况是由于缺少android.permission.INTERNET使用权限引起的。