onPageFinished 通常意味着:1、WebView 已经完成了 HTML 文档的解析和 DOM 树的构建;2、WebView 已经开始加载外部资源(如 CSS、JavaScript、图片等),但并不保证所有资源都已经加载完成;3、WebView 已经开始执行页面中的 JavaScript 代码,但并不保证所有代码都已经执行。
一、Android WebView onPageFinished对于Document意味着什么
Android WebView 中的 onPageFinished
是 WebViewClient
类的一个回调方法。当 WebView 完成页面加载时,该方法会被调用。然而,onPageFinished
对于 HTML 文档的意义并不简单,因为它涉及到页面加载的整个过程。
在 WebView 中,页面加载过程包括多个阶段,例如:请求页面资源、解析 HTML、构建 DOM 树、加载外部资源(如 CSS、JavaScript、图片等)、执行 JavaScript 代码、渲染页面等。在这个过程中,WebView 会根据页面内容和所需资源的加载情况,逐步完成页面的呈现。
当 WebView 完成页面加载时,会调用 onPageFinished
方法。然而,这并不意味着所有的外部资源都已经加载完成,或者所有的 JavaScript 代码都已经执行。实际上,onPageFinished
通常意味着以下几点:
- WebView 已经完成了 HTML 文档的解析和 DOM 树的构建。
- WebView 已经开始加载外部资源(如 CSS、JavaScript、图片等),但并不保证所有资源都已经加载完成。
- WebView 已经开始执行页面中的 JavaScript 代码,但并不保证所有代码都已经执行。
在实际开发中,onPageFinished
方法常用于执行与页面加载完成相关的操作,例如:
- 隐藏加载指示器:当页面加载完成时,可以隐藏显示给用户的加载指示器(如进度条)。
- 修改 WebView 设置:在页面加载完成后,可以根据需要修改 WebView 的某些设置,如禁用缩放等。
- 注入 JavaScript 代码:如果需要在 WebView 加载的页面中执行自定义的 JavaScript 代码,可以在
onPageFinished
方法中使用webView.loadUrl("javascript:...")
或webView.evaluateJavascript(...)
进行注入。
延伸阅读1:什么是WebView
WebView在Android平台上是一个特殊的View,基于webkit引擎、展示web页面的控件,app中显示的是一张网页,提供了网页的前进、后退、放大、缩小、搜索。WebView在低版本和高版本分别采用不同的 webkit 版本内核,4.4之后直接使用 Chrome。
一些经常变化的页面可以用WebView这种方式去加载网页,比如中秋、国庆打开的页面不一样,如果用WebView显示的话,直接修改Web网页代码即可,不需要客户端升级。