今天下午,我一直在撞墙,试图让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/");
}
}
Run Code Online (Sandbox Code Playgroud)
这是Google的"Hello,Webview"示例.如果我使用WebView并尝试访问www.google.com,那么它可以正常工作.如果我尝试访问任何其他站点,那么它将失败,包括loadData,它只是在模拟器中显示黑屏.最后我想从本地文件中读取.
包含在清单标记下,XML模式与Hello Webview示例相同.
我错过了一些明显的东西吗?:(
尝试改变
android:layout_width="wrap_content"
android:layout_height="wrap_content"
Run Code Online (Sandbox Code Playgroud)
至
android:layout_width="fill_parent"
android:layout_height="fill_parent"
Run Code Online (Sandbox Code Playgroud)
在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>
Run Code Online (Sandbox Code Playgroud)
尝试UTF-8而不是utf-8后两次尝试。我使用相同的代码加载http://www.theregister.co.uk没有问题- 尝试在内置浏览器应用程序中加载它,如果失败,您可能遇到某种防火墙/代理问题。
以下是我的一本书中的几个项目,演示了 WebView 的简单用法。
| 归档时间: |
|
| 查看次数: |
11275 次 |
| 最近记录: |