Android WebView的详解

Android WebView在android平台上是一个特殊的View, 他能用来显示网页,这个类可以被用来在你的app中仅仅显示一张在线的网页,还可以用来开发浏览器。
在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件。WebKit是Mac OS X v10.3及以上版本所包含的软件框 架(对v10.2.7及以上版本也可通过软件更新获取)。 同时,WebKit也是Mac OS X的Safari网页浏览器的基础。WebKit是一个开源项目,主要由KDE的KHTML修改而来并且包含了一些来自苹果公司的一些组件。传统上,WebKit包含一个网页引擎WebCore和一个脚本引擎JavaScriptCore,它们分别对应的是KDE的KHTML和KJS。不过, 随着JavaScript引擎的独立性越来越强,现在WebKit和WebCore已经基本上混用不分(例如Google Chrome和Maxthon 3采用V8引擎,却仍然宣称自己是WebKit内核)。
在开发过程中应该注意几点:
1.AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not available错误。
2.如果访问的页面中有javascript,则webview必须设置支持Javascript。
webview.getSettings().setJavaScriptEnabled(true);
3.如果页面中链接,如果希望点击链接继续在当前browser中响应,而不是新开Android的系统browser中响应该链接,必须覆盖 webview的WebViewClient对象
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
view.loadUrl(url);
return true;
}
}
);
4.如果不做任何处理,浏览网页,点击系统“Back”键,整个Browser会调用finish()而结束自身,如果希望浏览的网 页回退而不是推出浏览器,需要在当前Activity中处理并消费掉该Back事件。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
webView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
下一步让我们来了解一下android中webview是如何支持javascript自定义对象的,在w3c标准中js有 window,history,document等标准对象,同样我们可以在开发浏览器时自己定义我们的对象调用手机系统功能来处理,这样使用js就可以 为所欲为了。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>WebView</title>
<script language="javascript">
<!--
function click() {
Android.onClick("hello");
}
-->
</script>
</head>
<body>
<a href="http://www.baidu.com" rel="external nofollow" onclick="click()">点击</a>
</body>
</html>
可以看到,HTML代码中的超链接响应一个点击事件,会执行javascript中的click()方法,因为通过webView.addJavascriptInterface()方法新建了一个对象,并将此对象和javascript对象绑定了,javascript对象的引用即为"Android",所以在HTML中的click方法执行时会调用新建的对象中的onClick()方法。这样就实现了在javascript代码中调用Java代码.
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Android
# WebView
# WebView使用方法
# WebView的实例
# Android 解决WebView无法上传文件的问题
# Android WebView自定义长按选择实现收藏/分享选中文本功能
# Android WebView 不支持 H5 input type="file" 解决方法
# Android 5.1 WebView内存泄漏问题及快速解决方法
# Android中解决WebView上下滑动监听问题
# Android WebView或手机浏览器打开连接问题解决办法总结
# Android webview使用方法总结
# 是一个
# 苹果公司
# 的是
# 而不是
# 还可以
# 让我们
# 而来
# 中有
# 也可
# 我们可以
# 希望能
# 为所欲为
# 可以看到
# 自定义
# 新开
# 几点
# 不做
# 他能
# 不分
# 将此
相关文章:
深圳企业网站制作设计,在深圳如何网上全流程注册公司?
油猴 教程,油猴搜脚本为什么会网页无法显示?
广德云建站网站建设方案与建站流程优化指南
天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?
如何用VPS主机快速搭建个人网站?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
建站之星备案流程有哪些注意事项?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
,如何利用word制作宣传手册?
如何配置支付宝与微信支付功能?
建站之星如何取消后台验证码生成?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
如何用PHP工具快速搭建高效网站?
网站制作的步骤包括,正确网址格式怎么写?
如何挑选高效建站主机与优质域名?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
c# 在ASP.NET Core中管理和取消后台任务
重庆网站制作公司哪家好,重庆中考招生办官方网站?
建站之星如何实现五合一智能建站与营销推广?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
如何在阿里云完成域名注册与建站?
建站主机选购指南:核心配置与性价比推荐解析
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
定制建站哪家更专业可靠?推荐榜单揭晓
青浦网站制作公司有哪些,苹果官网发货地是哪里?
如何在阿里云香港服务器快速搭建网站?
如何用好域名打造高点击率的自主建站?
如何快速搭建虚拟主机网站?新手必看指南
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
宝塔建站后网页无法访问如何解决?
北京专业网站制作设计师招聘,北京白云观官方网站?
建站之星各版本价格是多少?
html制作网站的步骤有哪些,iapp如何添加网页?
,石家庄四十八中学官网?
网站制作话术技巧,网站推广做的好怎么话术?
建站之星如何助力网站排名飙升?揭秘高效技巧
免费网站制作appp,免费制作app哪个平台好?
建站主机无法访问?如何排查域名与服务器问题
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
公司门户网站制作流程,华为官网怎么做?
建站之星导航菜单设置与功能模块配置全攻略
如何续费美橙建站之星域名及服务?
建站VPS推荐:2025年高性能服务器配置指南
模具网站制作流程,如何找模具客户?
*请认真填写需求信息,我们会在24小时内与您取得联系。