跳到主要内容

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 平台。