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
相关文章推荐
- Sample Classification Code of CIFAR-10 in Torch
- Compilation of OpenGL Redbook sample code
- 解决 Setting onMessage on a WebView overrides existing values of window.postMessage, but a previous value was defined.
- 微软sample and code down web address
- iOS WebView加载URL 报错:Code=-1022
- Customizing the HTML code of a Content Query Web Part
- View the format of IEEE 754 floating point numbers source code
- MKMapView Sample Code
- 改写Selenium Web Driver Sample Code
- Caused by java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/com.google.android.webview-1/lib/arm/libwebviewchromium.so" is 32-bit instead of 64-bit
- Android mermory link of WebView
- "_OBJC_CLASS_$_WKWebView", referenced from:"...and "linker command failed with exit code 1 (use -v "
- Python sample code of hudson remote api, my first Python hello world
- 张恩明html5 Web SQL DB sample code
- react native与webview通信跳转页面报错:Cannot read property 'setNativeProps' of undefiend
- Android使用WebView加载图片防止OutOfMemoryError
- Corporation of cuda and openGL Texture( Source Code sample)
- Xcode升级之后,libWeiboSDK.a(WBSDKNormalWebViewController.o)' does not contain bitcode. You must rebuild
- libWeiboSDK.a(WBSDKNormalWebViewController.o)' does not contain bitcode. You must rebuild
- iOS平台 加载webView出现 code = -999 错误分析和解决办法