1.4 KiB
1.4 KiB
264 PermissionPrompt 权限请求
用途
请求权限:允许一次、始终允许或拒绝,并说明“始终允许”覆盖的范围。
最小示例
open := true
view := func(c *ui.Context) {
mujica.Use(c, mujica.Settings{})
r := mujica.PermissionPrompt(c, &open, mujica.PermissionPromptOptions{
Title: "Write to the ledger?", Scope: "Write access to ~/court/ledger",
})
if r.Choice == mujica.PermissionAllowAlways {
fmt.Println("remember the grant")
}
}
ui.Render(view, 400, 300, 1)
签名:func PermissionPrompt(c *ui.Context, open *bool, opts PermissionPromptOptions) PermissionResult。Title 或 Scope 为空时 panic。
参数
| 字段 | 类型 | 默认值 | 含义 |
|---|---|---|---|
Title |
string |
必填 | 问题。 |
Description |
string |
"" |
补充说明。 |
Scope |
string |
必填 | “始终允许”覆盖的范围。 |
状态
- 范围说明放在带锁形图标的框内。
- 打开时焦点在“拒绝”,点击遮罩无效。
事件
Choice:本帧的选择,PermissionAllowOnce、PermissionAllowAlways、PermissionDeny;无选择为PermissionNone。Escape 记为拒绝。
键盘操作
- 打开时焦点在拒绝;Tab 依次到“始终允许”“允许一次”;Enter 触发聚焦按钮;Escape 拒绝。
限制
- 组件不保存授权,记住“始终允许”由调用方负责。