From 51295adb4b8fbc4cd12cff4b37f27fa63d842843 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Thu, 5 Mar 2026 10:13:57 +0800 Subject: [PATCH] :art: Support sending notifications on Android https://github.com/siyuan-note/siyuan/issues/17114 Signed-off-by: Daniel <845765@qq.com> --- app/src/mobile/util/onMessage.ts | 2 +- app/src/types/index.d.ts | 2 +- kernel/api/notification.go | 8 ++++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/src/mobile/util/onMessage.ts b/app/src/mobile/util/onMessage.ts index 196759437..3b47e4020 100644 --- a/app/src/mobile/util/onMessage.ts +++ b/app/src/mobile/util/onMessage.ts @@ -26,7 +26,7 @@ export const onMessage = (app: App, data: IWebSocketData) => { break; case "sendDeviceNotification": if (window.JSAndroid.sendNotification) { - window.JSAndroid.sendNotification(data.data.title, data.data.body, data.data.delayInSeconds); + window.JSAndroid.sendNotification(data.data.channel, data.data.title, data.data.body, data.data.delayInSeconds); } break; case "backgroundtask": diff --git a/app/src/types/index.d.ts b/app/src/types/index.d.ts index 84f4a8c1f..9348ebd9a 100644 --- a/app/src/types/index.d.ts +++ b/app/src/types/index.d.ts @@ -255,7 +255,7 @@ interface Window { getScreenWidthPx(): number exit(): void setWebViewFocusable(enable: boolean): void - sendNotification(title: string, body: string, delayInSeconds: number): void + sendNotification(channel: string, title: string, body: string, delayInSeconds: number): void }; JSHarmony: { showKeyboard(): void diff --git a/kernel/api/notification.go b/kernel/api/notification.go index f71192252..4b0a5a48c 100644 --- a/kernel/api/notification.go +++ b/kernel/api/notification.go @@ -40,6 +40,13 @@ func sendDeviceNotification(c *gin.Context) { return } + var channel string + if nil != arg["channel"] { + channel = strings.TrimSpace(arg["channel"].(string)) + } else { + channel = "SiYuan Notifications" + } + var title string if nil != arg["title"] { title = strings.TrimSpace(arg["title"].(string)) @@ -66,6 +73,7 @@ func sendDeviceNotification(c *gin.Context) { } util.BroadcastByType("main", "sendDeviceNotification", 0, "", map[string]interface{}{ + "channel": channel, "title": title, "body": body, "delayInSeconds": delayInSeconds,