WebView
在应用程序中轻松加载 web 页面,同时允许用户交互。
此控件仅在 iOS、Android、macOS 和 Web 平台上受支持;Linux 和 Windows 版本正在开发中。
要构建使用 WebView
控件的 Flet 应用程序,请将 --include-packages flet_webview
添加到 flet build
命令中,例如:
flet build apk --include-packages flet_webview
示例
一个简单的实现,加载flet.dev网站:
import flet as ft
def main(page: ft.Page):
wv = ft.WebView(
url="https://flet.qiannianlu.com",
on_page_started=lambda _: print("Page started"),
on_page_ended=lambda _: print("Page ended"),
on_web_resource_error=lambda e: print("Page error:", e.data),
expand=True,
)
page.add(wv)
ft.app(main)
方法
can_go_back()
是否有后退历史项。仅适用于 Android、iOS 和 macOS 平台。
返回一个bool
值。
can_go_forward()
是否有前进历史项。仅适用于 Android、iOS 和 macOS 平台。
clear_cache()
清除 WebView 使用的所有缓存。仅适用于 Android、iOS 和 macOS 平台。
清除以下缓存:
- 浏览器 HTTP 缓存
- 缓存 API 缓存。服务工作者通常使用此缓存。
- 应用程序缓存
clear_local_storage()
清除 WebView 使用的本地存储。仅适用于 Android、iOS 和 macOS 平台。
disable_zoom()
禁用使用屏幕上的缩放控制和手势进行缩放。仅适用于 Android、iOS 和 macOS 平台。
enable_zoom()
启用使用屏幕上的缩放控制和手势进行缩放。仅适用于 Android、iOS 和 macOS 平台。
get_current_url()
返回 WebView 正在显示的当前 URL,如果从未加载过 URL,则返回None
。仅适用于 Android、iOS 和 macOS 平台。
get_title()
当前加载页面的标题。仅适用于 Android、iOS 和 macOS 平台。
get_user_agent()
获取用于 HTTP User-Agent:
请求头的值。仅适用于 Android、iOS 和 macOS 平台。
go_back()
如果can_go_back()
为True
,则在 WebView 的历史记录中后退。仅适用于 Android、iOS 和 macOS 平台。
go_forward()
如果can_go_forward()
为True
,则在 WebView 的历史记录中前进。仅适用于 Android、iOS 和 macOS 平台。
load_file()
加载提供的本地文件。仅适用于 Android、iOS 和 macOS 平台。
它具有以下参数:
absolute_path
:要加载的本地文件的路径。
load_html()
加载提供的 HTML 字符串。仅适用于 Android、iOS 和 macOS 平台。
它具有以下参数:
html
:要加载的 HTML 字符串。base_url
(可选):用于解析 HTML 字符串中的相对 URL。
load_request()
发出 HTTP 请求并在 WebView 中加载响应。仅适用于 Android、iOS 和 macOS 平台。
它具有以下参数:
url
:要加载的 WebView 的 URL。method
:请求的方法。值的类型为WebviewRequestMethod
,默认为WebviewRequestMethod.GET
。
reload()
重新加载当前 URL。仅适用于 Android、iOS 和 macOS 平台。
run_javascript()
在当前页面的上下文中运行给定的 JavaScript。仅适用于 Android、iOS 和 macOS 平台。
它具有以下参数:
value
:要运行的 JavaScript 代码。
scroll_by()
按提供的 WebView 像素数量滚动。仅适用于 Android、iOS 和 macOS 平台。
它具有以下参数:
x
:在 x 轴上滚动的像素数量。y
:在 y 轴上滚动的像素数量。
scroll_to()
滚动到提供的 WebView 像素位置。仅适用于 Android、iOS 和 macOS 平台。
它具有以下参数:
x
:滚动位置的 x 坐标。y
:滚动位置的 y 坐标。
事件
on_console_message
当记录控制台消息时触发。仅适用于 Android、iOS 和 macOS 平台。
事件处理程序参数的类型为 WebviewConsoleMessageEvent
。
on_javascript_alert_dialog
当即将显示 JavaScript 警告对话框时触发。仅适用于 Android、iOS 和 macOS 平台。
事件处理程序参数的类型为 WebviewJavascriptEvent
。
on_page_ended
当 WebView 页面的所有加载过程结束时触发。仅适用于 Android、iOS 和 macOS 平台。
on_page_started
当 WebView 页面的第一个加载过程开始时立即触发。仅适用于 Android、iOS 和 macOS 平台。
on_progress
当 WebView 页面加载进度改变时触发。仅适用于 Android、iOS 和 macOS 平台。
on_scroll
当滚动位置改变时触发。仅适用于 Android、iOS 和 macOS 平台。
事件处理程序参数的类型为 WebviewScrollEvent
。
on_url_change
当 WebView 页面的 URL 改变时触发。仅适用于 Android、iOS 和 macOS 平台。
on_web_resource_error
当加载 WebView 页面资源出现错误时触发。仅适用于 Android、iOS 和 macOS 平台。