一个最简单的WebView教程
来源:互联网 发布:解放军知乎 编辑:程序博客网 时间:2024/05/20 04:51
WebView允许你创建自己的窗口来显示网页(乃至开发一个完整的浏览器)。
在这个教程中,你可以创建一个简单的Acitivity来显示和导航网页。
1、创建一个新的项目命名为HelloWebView。
HelloWebViewActivity.java)。在类的顶部,声明一个WebView对象:
创建了WebViewClient就可以选择WebView上任意URL并在同一个WebView中加载。shouldOverrideUrlLoading(WebView, String)方法传入当前的WebView和请求的URL,它所做的事情就是在给定的view中加载URL。返回true说明这个方法已经处理了URL,这个事件就不用再传递了(这时,会创建一个Intent并由浏览器程序处理)。
如果你再次运行这个程序,这个Activity会加载一个新的页。然而你还是不能导航到前一个页面。要如此做,你只需处理设备的BACK键,以使它返回到前一个页,而不是退出程序。
当你打开程序,你将会看到如下的界面:
在这个教程中,你可以创建一个简单的Acitivity来显示和导航网页。
1、创建一个新的项目命名为HelloWebView。
2、打开 res/layout/main.xml文件并加入下面的内容:
<?xml version="1.0" encoding="utf-8"?><WebView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent"/>3、现在打开HelloWebView.java文件(linc注:如果你现在用最新的ADT,那么这个文件是
HelloWebViewActivity.java)。在类的顶部,声明一个WebView对象:
WebView mWebView;然后把用下面的代码完成onCreate()方法:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mWebView = (WebView) findViewById(R.id.webview); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.loadUrl("http://www.google.com");}
在这里从Activity的布局中初始化了成员变量Webview;用getSettings()请求一个WebSettings对象;并用setJavaScriptEnabled(boolean)将WebView的JavaScript置成可用。最后,用loadUrl(String)加载一个初始化好的网页。
由于本程序需要接入网络,你要在Android manifest文件中加一个适当的权限。打开AndroidManifest.xml文件并加上如下子元素:
<uses-permission android:name="android.permission.INTERNET" />在manifast文件中,移走标题栏以给网页更多的空间,使用"NoTitleBar"主题:
<activity android:name=".HelloGoogleMaps" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar">现在运行这个程序吧!
你现在已经有了最简单的网页显示工具了。它现在还不是一个浏览器呢,因为如果你点击一个链接,默认的Android浏览器处理了这个Intent来显示一个网页,原来这个Activity在技术上是不能够做这些的。不用intent过滤器来显示网页,你可以重写一个WebViewClient类来启用Activity处理自己的URL请求。
在HelloAndroid Activity中,加入内部类:
private class HelloWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; }}然后在onCreate(Bundle)方法的最后,为WebViewClient设置一个HelloWebViewClient的实例:
mWebView.setWebViewClient(new HelloWebViewClient());这一行可以放在任何WebView对象初始化之后。
创建了WebViewClient就可以选择WebView上任意URL并在同一个WebView中加载。shouldOverrideUrlLoading(WebView, String)方法传入当前的WebView和请求的URL,它所做的事情就是在给定的view中加载URL。返回true说明这个方法已经处理了URL,这个事件就不用再传递了(这时,会创建一个Intent并由浏览器程序处理)。
如果你再次运行这个程序,这个Activity会加载一个新的页。然而你还是不能导航到前一个页面。要如此做,你只需处理设备的BACK键,以使它返回到前一个页,而不是退出程序。
@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) { mWebView.goBack(); return true; } return super.onKeyDown(keyCode, event);}这个onKeyDown(int, KeyEvent)回调方法将会在Activity中按钮被按下的时候调用。KeyEvent中的条件是核对按下的键是BACK键以及WebView可以回退(它有历史记录)。如果条件满足,就会调用goBack()方法在WebView历史中回退一个步骤。返回true表明这个事件已经被处理了。如果条件不满足,这个事件就会被回送给系统。再次运行程序。你现在可以点击进入链接并能够在页面历史中回退了。
当你打开程序,你将会看到如下的界面:
- 一个最简单的WebView教程
- 最简单的webView使用
- 【spring教程之一】创建一个最简单的spring例子
- android 最简单的WebView嵌套Html
- markdown最简单的教程
- 最简单的Git教程
- WebView 写一个自己的简单浏览器
- 一个最简单的脚本
- 一个最简单的计算器
- 一个最简单的IOCP.
- 一个最简单的servlet
- 一个最简单的定时器
- 一个最简单的线程
- 一个最简单的循环
- Struts 教程I:一个用jbuilder X 做的最简单的helloworld的struts例子
- Android WebView最简单使用
- 最简单的webview监听及传值
- 一个简单的Makefile教程
- 实现两个Mysql数据库同步
- Android HAL的被调用流程
- 网吧安内线 黑客遥控偷Q币出售牟利
- spring IOC控制反转,实现action的配置
- mysql 主从复制1201错误
- 一个最简单的WebView教程
- Flex整合Spring+hibernate问题集锦
- http://poj.org/problem?id=1466&&Girls and Boys
- stagefright与opencore对比
- V4L2应用程序框架
- GlusterFS集群文件系统研究
- Vmware7.1.4安装+破解+汉化
- android packaging problem
- OpenSUSE中的zypper用法