您的位置:首页 > 移动开发

sample code of webview

2009-11-22 16:59 281 查看

Hello, WebView

一个WebView允许你创建一个属于你自己的网页浏览器活动对象(web browser Activity)。 在本教程中, 我们会创建一个简单的活动对象(Activity),它将可以查看网页。

创建一个新的 工程/活动对象 命名为 HelloWebView。
打开布局文件(layout file),插入一个 WebView 看起来就像这样:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">

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

</LinearLayout>
[/code]

现在打开 HelloWebView.java 这个文件。 在类文件的上面,,实例化一个 WebView 的对象:
WebView webview;
[/code]
然后添加在 onCreat() 方法结尾处:

webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("http://www.google.com");
[/code]
它绑定了我们在 layout 中创建的 WebView,申请一个 Websettings和激活 JavaScript。最后我们加载一个网址。

因为我们访问互联网,我们需要在 Android manifest文件中添加适当的权限。 所以打开这个 AndroidManifest.xml文件,作为
Manifest的子元素添加如下代码:

<uses-permission
android:name="android.permission.INTERNET"
/>
[/code]

运行。

您现在已经有了世界上最简单的网页浏览器,但这还不是一个完整的浏览器.,仅仅加载了我们所要求的网页。

我们可以加载一个网页,但只要我们点击一个链接时,默认的Android网络浏览器会处理这个意向,而不是我们自己的 WebView, 所以现在我们将覆盖 WebViewClient,使我们能够处理我们自己的网址加载。

在HelloAndroid Activity中, 添加这个嵌套的类:
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
[/code]

现在,在onCreate方法中, 实例化的一个
HelloWebViewClient
作为我们的WebViewClient:
webview.setWebViewClient(new WebViewClientDemo());
[/code]
此行应立即按照我们的 WebView对象初始化。

我们所做的就是创建一个WebViewClient 将在同一个WebView中加载任何我们选择的网址。你可以在shouldOverrideUrlLade
()
方法中看到这些, 以上是通过当前的WebView和URL,因此我们要做的就是加载这个URL在一个特定的view中。返回True说明了我们处理自己的URL和 the event should not bubble-up。

如果您再次尝试,新的页面就装载在HelloWebView Activity上了,但是你会发现我们不能返回上一页面。我们需要在设备上处理返回按钮,以便将返回到前一页,而不是退出该应用程序。

处理后退按钮按键,在HelloWebView Activity 内添加下面的方法:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
webview.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
[/code]
这个条件用KeyEvent 事件检查是否按下了回退按钮和Webview 是否能够返回 (如果它有一个历史记录). 如果两个值都不为true,那么我们会发出这个链事件 (Activity将会关闭)。但是如果都满足的话,会执行goBack(), 将回到历史的某一步. 然后我们返回true表明我们处理了这个事件。

当您打开应用程序,它看起来应该像这样:



翻译自:http://androidappdocs.appspot.com/guide/tutorials/views/hello-webview.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: