权限处理器(PermissionHandler)
权限处理器(PermissionHandler)可以检查和/或请求设备的各种组件的 权限。支持Windows、iOS、Android和Web。 基于Dart/Flutter包permission_handler。
权限处理器(PermissionHandler)控件是非视觉控件,应该添加到page.overlay
列表中。
打包
要构建使用权限处理器(PermissionHandler)的Flet应用程序,需要在flet build
命令中添加--include-packages flet_permission_handler
,例如:
flet build apk --include-packages flet_permission_handler
示例
基本示例
- Python
import flet as ft
def main(page: ft.Page):
page.scroll = ft.ScrollMode.ADAPTIVE
page.appbar = ft.AppBar(title=ft.Text("权限处理器测试"))
ph = ft.PermissionHandler()
page.overlay.append(ph)
def check_permission(e):
o = ph.check_permission(e.control.data)
page.add(ft.Text(f"检查{e.control.data.name}权限:{o}"))
def request_permission(e):
o = ph.request_permission(e.control.data)
page.add(ft.Text(f"请求{e.control.data.name}权限:{o}"))
def open_app_settings(e):
o = ph.open_app_settings()
page.add(ft.Text(f"应用设置:{o}"))
page.add(
ft.OutlinedButton(
"检查麦克风权限",
data=ft.PermissionType.MICROPHONE,
on_click=check_permission,
),
ft.OutlinedButton(
"请求麦克风权限",
data=ft.PermissionType.MICROPHONE,
on_click=request_permission,
),
ft.OutlinedButton(
"打开应用设置",
on_click=open_app_settings,
),
)
ft.app(main)
方法
check_permission(of: PermissionType)
检查指定的PermissionType
的状态。
返回类型为PermissionStatus
的实例。
open_app_settings()
打开设备的设置。通常在调用此方法之前,需要提醒用户需要哪个权限以及如何/在哪里启用它。
返回一个布尔值:如果成功打开设备设置,则返回True
,否则返回False
。
request_permission(of: PermissionType)
请求设备访问指定的PermissionType
。
返回类型为PermissionStatus
的实例。