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使用方法总结
# 是一个
# 苹果公司
# 的是
# 而不是
# 还可以
# 让我们
# 而来
# 中有
# 也可
# 我们可以
# 希望能
# 为所欲为
# 可以看到
# 自定义
# 新开
# 几点
# 不做
# 他能
# 不分
# 将此
相关文章:
用v-html解决Vue.js渲染中html标签不被解析的问题
IOS倒计时设置UIButton标题title的抖动问题
如何通过PHP快速构建高效问答网站功能?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?
如何注册花生壳免费域名并搭建个人网站?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
如何选择建站程序?包含哪些必备功能与类型?
如何通过IIS搭建网站并配置访问权限?
微信推文制作网站有哪些,怎么做微信推文,急?
电商平台网站制作流程,电商网站如何制作?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
如何选择网络建站服务器?高效建站必看指南
如何高效生成建站之星成品网站源码?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
如何快速完成中国万网建站详细流程?
高端智能建站公司优选:品牌定制与SEO优化一站式服务
如何通过免费商城建站系统源码自定义网站主题与功能?
,在苏州找工作,上哪个网站比较好?
如何通过虚拟机搭建网站?详细步骤解析
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
兔展官网 在线制作,怎样制作微信请帖?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
深圳网站制作培训,深圳哪些招聘网站比较好?
如何设置并定期更换建站之星安全管理员密码?
昆明高端网站制作公司,昆明公租房申请网上登录入口?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
C#如何序列化对象为XML XmlSerializer用法
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
如何续费美橙建站之星域名及服务?
网站制作公司排行榜,四大门户网站排名?
建站之星2.7模板快速切换与批量管理功能操作指南
建站主机助手选型指南:2025年热门推荐与高效部署技巧
ui设计制作网站有哪些,手机UI设计网址吗?
如何制作一个表白网站视频,关于勇敢表白的小标题?
建设网站制作价格,怎样建立自己的公司网站?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
微信小程序 input输入框控件详解及实例(多种示例)
建站org新手必看:2024最新搭建流程与模板选择技巧
常州企业网站制作公司,全国继续教育网怎么登录?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
如何快速生成可下载的建站源码工具?
头像制作网站在线制作软件,dw网页背景图像怎么设置?
平台云上自主建站:模板化设计与智能工具打造高效网站
网站制作的步骤包括,正确网址格式怎么写?
建站之星如何实现网站加密操作?
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
上海网站制作开发公司,上海买房比较好的网站有哪些?
*请认真填写需求信息,我们会在24小时内与您取得联系。