From c5bffb68f18957d2e682b87e51f42b417f294625 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Mon, 2 Mar 2026 11:04:38 +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 | 6 ++++-- app/src/types/index.d.ts | 2 +- kernel/api/notification.go | 12 ++++++++++-- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app/src/mobile/util/onMessage.ts b/app/src/mobile/util/onMessage.ts index b8d3a2ab1..0042b5f56 100644 --- a/app/src/mobile/util/onMessage.ts +++ b/app/src/mobile/util/onMessage.ts @@ -2,7 +2,9 @@ import {openMobileFileById} from "../editor"; import { processSync, progressLoading, - reloadSync, setDefRefCount, setRefDynamicText, + reloadSync, + setDefRefCount, + setRefDynamicText, transactionError } from "../../dialog/processSystem"; import {App} from "../../index"; @@ -20,7 +22,7 @@ export const onMessage = (app: App, data: IWebSocketData) => { switch (data.cmd) { case "sendDeviceNotification": if (window.JSAndroid.sendNotification) { - window.JSAndroid.sendNotification(data.data.title, data.data.body); + window.JSAndroid.sendNotification(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 48b56a78a..84f4a8c1f 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): void + sendNotification(title: string, body: string, delayInSeconds: number): void }; JSHarmony: { showKeyboard(): void diff --git a/kernel/api/notification.go b/kernel/api/notification.go index e1a040054..f71192252 100644 --- a/kernel/api/notification.go +++ b/kernel/api/notification.go @@ -58,9 +58,17 @@ func sendDeviceNotification(c *gin.Context) { return } + var delayInSeconds int + if nil != arg["delayInSeconds"] { + delayInSeconds = int(arg["delayInSeconds"].(float64)) + } else { + delayInSeconds = 1 + } + util.BroadcastByType("main", "sendDeviceNotification", 0, "", map[string]interface{}{ - "title": title, - "body": body, + "title": title, + "body": body, + "delayInSeconds": delayInSeconds, }) }