plugins
Notification
查看 MarkdownKasumi 通知插件的方法、权限申请和平台行为。
理解 Notification 插件的短文本通知、Android 运行时授权和双端差异。
Notification 插件只发送标题和正文通知,不提供点击路由、操作按钮、附件、图标管理、分组 或持久通知中心。通知权限和系统展示策略由宿主平台控制。
| 层级 | 入口 | 责任 |
|---|---|---|
| 前端 API | frontend/src/api/notification.ts | 参数守卫和命令封装 |
| 协议清单 | protocol/plugins.json | notification 插件和命令归属 |
| Windows 插件 | windows/src/plugins/ksm_notification_plugin.cpp | Windows 通知服务 |
| Android 插件 | KSMNotificationPlugin.kt | Android 通知通道与权限 |
| 命令 | Windows | Android | 权限 | 返回 |
|---|---|---|---|---|
notification.show | 支持 | 支持 | notification.show | { shown } |
Android 13 及以上需要先请求系统 POST_NOTIFICATIONS 权限。Windows 对已注册权限直接返回
granted,但系统通知策略仍可能影响可见性。
| 参数 | 类型 | 说明 |
|---|---|---|
title | string | 必填标题 |
body | string | 必填正文 |
const permission = await KSM.permission.request('notification.show');
if (!permission.granted) {
return;
}
await KSM.notification.show({
title: 'Kasumi',
body: '后台任务已完成'
});permission.request 会更新宿主权限集合,但前端 KSM.capabilities() 缓存不会自动刷新。
| 项 | Windows | Android |
|---|---|---|
| 权限模型 | 已注册权限 | Android 13+ 运行时权限 |
| 通知通道 | 系统宿主服务 | kasumi 通知通道 |
| 点击路由 | 不提供 | 不提供 |
| 持久化 | 不提供 | 不提供 |
| 错误码 | 场景 |
|---|---|
INVALID_ARGS | 标题或正文不是字符串 |
PERMISSION_DENIED | 未授予通知权限 |
IO_ERROR | 宿主通知服务拒绝发送 |
NOT_SUPPORTED | 宿主未注册 Notification 插件 |
TIMEOUT / CANCELLED | 请求超时或页面销毁 |
KSM.permission.request('notification.show')。capabilities.permissions 和 capabilities.commands。shown: true 时,检查平台通知策略而不是重试发送。
评论