安卓系统中有一个名为WebView的组件,它能让应用程序在界面内直接展示网页内容,无需跳转至外部浏览器。该组件具备网页渲染、JavaScript执行等核心功能,确保不同应用在处理Web内容时保持一致的运行效果,为开发者提供统一的开发环境,减少兼容性问题。此外,它还能整合网络请求的处理逻辑,优化数据存储机制,让用户在使用各类应用时,浏览器的历史记录、书签、密码等信息得以快速同步和访问,提升整体使用流畅度。对于有相关需求的用户来说,这是一个值得尝试的实用工具。
软件功能
【位置感知浏览】
随身取得更好、与你更相关的资讯。
【同步】
无论使用什么设备,都能访问你浏览器里的浏览记录、保存的书签、各类密码以及当前打开的页面。
【附加元件】
快速简单地自订你的浏览器。
【速度】
立刻上线,并且快速地找到你想找的东西。
软件特色
这款工具能让手机运行即刻流畅,浏览各类网页时体验极佳,还能实时优化网页数据,是一款非常实用的网页辅助插件。
专属架构的处理器为您提供定制化处理服务,带来丰富有趣的网页信息浏览体验,系统支持各类组件数据的自定义设置,运行稳定可靠。
各类应用程序都能获取嵌入式的操作体验数据,若不想直接使用,可在移动设备上完成安装后,借助网页界面进行查看和使用。
软件亮点
安卓设备上的谷歌搜索应用能够让你的手机拥有流畅的网络搜索感受。
这款搜索工具支持对网络信息以及设备本地存储的资料进行检索。
像应用软件、网页收藏夹与浏览痕迹、通讯人信息、音频文件这类内容都涵盖在内。
入门知识
我们日常浏览网页时,一般会直接使用浏览器——无论是电脑客户端还是手机上的浏览器,你都能明确知道自己正在使用它。而webview则是一种嵌入在原生应用里的浏览器组件,它不像独立浏览器那样容易被察觉,很多时候你甚至意识不到自己正在通过浏览器访问网页。
传统浏览器包含两个组成部分,一部分是UI(像地址栏、导航栏这类界面元素),另一部分则是浏览器引擎。而webview,其实就是嵌入在原生应用里的浏览器引擎。
webview仅为一种具备可视化呈现能力的组件,其功能定位是充当原生应用界面的视觉构成部分。
通过webview呈现的信息无需在本地设备留存,能够直接从远端服务器实时获取。
这种可调节性让浏览器端网页应用与期望嵌入原生应用的网页应用代码之间,实现了无缝复用的可能,构建出了一个代码通用的全新场景。
运行在webview里的JS代码能够调用原生系统API,不受传统浏览器沙箱的约束。
沙箱之所以存在,是因为你永远无法对加载的网络内容做到完全信任,所以不能让它调用原生的系统接口。而在网页视图(webview)里,开发人员一般能对加载的内容实现全面掌控,恶意代码入侵并在设备上引发混乱的概率是比较低的。
在网页视图环境下,前端脚本能够与本地程序代码实现双向交互,还可借助调用本地接口来整合各类系统级的实用功能,比如设备传感器、文件存储、日程管理、通讯录等。
获得WebView网页加载初始化和完成事件
步骤:
可以自定义一个类,使其继承自WebViewClient,以此来实现专属的WebViewClient功能。
可以在重载的方法中,针对WebView加载完成的时机来执行自定义操作——具体来说是重写onPageFinished(WebView view, String url)这个方法,当webview完成页面加载时,该方法会被触发,此时就能把需要执行的逻辑放在这个方法内部。
关联你自己的webviewclient 与 webview 通过 这个方法:webView.setWebViewClient( new WebViewClient;
若要对加载进度进行监视,需自行创建一个WebChromeClient类,然后重载其中的onProgressChanged方法,接着
布局文件:
需要留意的是,在相关操作中涉及到的网页视图组件的一些具体使用方式,例如通过获取该组件的配置对象并调用相应方法来启用JavaScript功能。
等等,具体参考API
要使用进度条,需先new出一个setWebChromeClient,然后在其内部类中编写onProgressChanged事件。
总结:WebView的设计思路是分工协作,它专注于核心的解析与渲染任务,而那些非核心的杂项工作则由其他模块负责处理。
WebViewClient的作用是协助WebView处理各类通知与请求事件,具体涵盖以下方面:
onLoadResource
onPageStart
onPageFinish
onReceiveError
onReceivedHttpAuthRequest
有一个名为WebChromeClient的组件,它主要用于配合WebView完成一系列相关操作,比如对Javascript弹出的对话框进行处理,获取网站的图标信息,获取网站的标题内容,以及对页面加载进度进行管理等。
onCloseWindow(关闭WebView)
onCreateWindow
onJsAlert(WebView本身无法弹出alert提示,需通过自定义WebChromeClient来处理弹窗逻辑)
onJsPrompt
onJsConfirm
onProgressChanged
onReceivedIcon
onReceivedTitle