这篇文章主要介绍了WebView这个内置在Android手机中的浏览器组件,它就像一个“隐形”的浏览器,隐藏在各种应用里,随时为你提供网页浏览功能。 WebView的强大之处在于它可以和手机的系统API交互,比如调用位置、存储、日历等酷炫的功能,这在传统浏览器中是做不到的。 它还可以用来展示广告、加载网页内容或者作为整个应用的核心,这种模式被称为“混合式开发”。
从实际使用来看,WebView让开发者可以在原生应用里嵌入网页功能,既方便又灵活。比如新闻App里的文章浏览、购物App的商品详情页,很可能都是用WebView实现的。 你可能没意识到自己在用它,但它确实在默默地提升你的手机体验。
我觉得WebView真的很厉害,因为它把网页和手机系统无缝结合,让应用的功能更丰富。 不过,虽然它方便,但也要注意安全,毕竟 WebView 可以直接调用系统权限,稍微不注意可能会有风险呢!
webview最新版本App是谷歌提供的一个内置预安装系统组件,在这里,不但内置最专业的架构处理器可以帮助你定制处理,更有超多趣味十足的网页资讯信息实时显示,方便你随时随地在线浏览各种网页效果,而且app内的系统还支持自定义设置各种组建数据,让整体使用起来更加稳定的同时也将使你可以及时优化网页相关数据信息。

应用亮点
1、Android手机的Google搜索应用程序可以为你的手机提供畅快的网络搜索体验。
2、官方提供的这款搜索应用程序可以搜索相关的网页内容和手机本地内容。
3、包括应用程序、浏览器书签和记录、联系人姓名、音乐等内容。
应用功能
【位置感知浏览】
随身取得更好、与你更相关的资讯。
【同步】
从任何装置存取你浏览器的历史纪录、书签、密码,以及开启的分页。
【附加元件】
快速简单地自订你的浏览器。
【速度】
立刻上线,并且快速地找到你想找的东西。
webview是什么
这是一个可视化的组件,是作为原生APP的视觉部分。可以内嵌在移动端,实现前端的混合式开发,大多数混合式开发框架都是基于WebView模式进行二次开发的。比如:APIcloud、uni-app等等的框架。
一、入门知识
1、我们通常是用浏览器来浏览网页,你很清楚的知道你正在使用浏览器,要么是PC客户端,要么是手机上的app。但是这是一个嵌入式的浏览器,是嵌入在原生应用中的,你可能都意识不到你在用浏览器。
2、传统浏览器分为两个部分,UI(地址栏、导航栏)和浏览器引擎。web就是原生应用中的浏览器引擎。
3、软件只是一个可视化的组件,是作为原生APP的视觉部分。
4、用软件展示的内容是不需要存储在本地的,可以直接从服务器获取。
5、这种灵活性打开了浏览器端的web应用和希望展示在原生应用中的web应用代码直接可重用的世界。
6、运行在软件中的JS代码有能力调用原生的系统API,没有传统浏览器沙箱的限制。
7、沙箱的存在是因为,你永远不能完全信任加载的web内容,所以不能允许它调用原生的系统API。而在软件中开发人员通常可以完全控制加载的内容,恶意代码进入并在设备上造成混乱的可能性很低。
8、在软件中,JS代码可以跟原生应用代码相互通信,也可以调用原生API集成酷炫的系统级功能,如传感器、存储、日历、联系人等。
二、用法
1、作为APP内置浏览器,显示链接的内容。
2、用来显示广告。
3、完全承载APP内的所有交互。从技术角度看这些仍是原生应用,但它做的唯一原生操作就是托管webview,这种应用被称为混合应用。从部署和更新的角度来看,混合应用非常方便。
4、作为原生应用的扩展。许多原生应用会提供加载项或扩展程序来扩展其功能,由于web技术的简单性和强大,这些加载项和扩展通常以HTML、CSS、JS而不是C++、C#或其他来构建。
三、精髓
软件其实只是一个再应用中设置好位置和大小的浏览器,而且不会放置任何花哨的UI。
在大多数情况下,除非你调用了原生API,否则不必在软件中专门测试web应用。
webview怎么用
需求1:根据URL加载网页
1、直接在Activity上加载一个WebView

2、布局代码中设置
相信大家都见过很多的新闻类App吧或者门户信息类的App,他的结构可能是这样的:

左上角一个点击关闭当前Activity的按钮,中间是新闻的title,右面是一个刷新按钮, 而在右下角可能有这样一个悬浮的按钮,当我们滑动超过屏幕宽度他就会显示出来, 当用户点击后又会回滚到网页的顶部!
几个常见功能使用方法
android的WebView组件可以说是相当的强大,现将项目中经常用到的几个功能总结如下:
一、背景设置

WebView.setBackgroundColor(0);//先设置背景色为transparent
WebView.setBackgroundResource(R.drawable.yourImage);//然后设置背景图片
二、获得WebView网页加载初始化和完成事件
步骤:
1、创建一个自己的WebViewClient(继承 WebViewClient 类)如WebViewClient
2、重载里面的 onPageFinished(WebView view, String url)方法,(webview加载完成会调用这个方法),这个方法放自己想要做的事情,在webview加载完成以后
3、关联你自己的webviewclient 与 webview 通过 这个方法:webView.setWebViewClient( new WebViewClient();

如果需要监视加载进度的,需要创建一个自己的WebChromeClient类,并重载方法onProgressChanged,再

布局文件:

要注意的是,其中的webView的一系列用法,比如 webView.getSettings()。setJavaScriptEnabled(true);设置可以使用javscript;

等等,具体参考API
而进度条的使用是在new出一个setWebChromeClient后,可以在内部类中写onProgressChanged事件
总结:在WebView的设计中,不是什么事都要WebView类干的,有些杂事是分给其他人的,这样WebView专心干好自己的解析、渲染工作就行了。
WebViewClient就是帮助WebView处理各种通知、请求事件的,具体来说包括:
onLoadResource
onPageStart
onPageFinish
onReceiveError
onReceivedHttpAuthRequest
WebChromeClient是辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等
onCloseWindow(关闭WebView)
onCreateWindow()
onJsAlert (WebView上alert是弹不出来东西的,需要定制你的WebChromeClient处理弹出)
onJsPrompt
onJsConfirm
onProgressChanged
onReceivedIcon
onReceivedTitle
更新内容
v138.0.7204.67:
• 更正了一些错误并提升了速度































共有 0条评论