7

今天下午我一直在用头撞墙,试图让 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 示例相同。

我在这里遗漏了一些明显的东西吗?:(

4

3 回答 3

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>
于 2010-01-02T06:37:27.083 回答
0

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

这里有几个项目展示了 WebView 的简单用法,来自我的一本书。

于 2009-12-30T20:20:34.750 回答
0

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

于 2012-05-10T07:10:39.923 回答