diff --git a/app/src/mobile/util/onMessage.ts b/app/src/mobile/util/onMessage.ts index dabaf88dd..b57983b39 100644 --- a/app/src/mobile/util/onMessage.ts +++ b/app/src/mobile/util/onMessage.ts @@ -26,10 +26,10 @@ export const onMessage = (app: App, data: IWebSocketData) => { break; case "sendDeviceNotification": if (window.JSAndroid.sendNotification) { - window.JSAndroid.sendNotification(data.data.channel, data.data.title, data.data.body, data.data.delayInSeconds); + window.JSAndroid.sendNotification(data.data.channel, data.data.id, data.data.title, data.data.body, data.data.delayInSeconds); } if (window.JSHarmony.sendNotification) { - window.JSHarmony.sendNotification(data.data.channel, data.data.title, data.data.body, data.data.delayInSeconds); + window.JSHarmony.sendNotification(data.data.channel, data.data.id, data.data.title, data.data.body, data.data.delayInSeconds); } break; diff --git a/app/src/types/index.d.ts b/app/src/types/index.d.ts index aae38ce66..7da6c9fe4 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(channel: string, title: string, body: string, delayInSeconds: number): number + sendNotification(channel: string, id: number, title: string, body: string, delayInSeconds: number): number cancelNotification(id: number): void }; JSHarmony: { @@ -275,7 +275,7 @@ interface Window { getScreenWidthPx(): number exit(): void setWebViewFocusable(enable: boolean): void - sendNotification(channel: string, title: string, body: string, delayInSeconds: number): void + sendNotification(channel: string, id: number, title: string, body: string, delayInSeconds: number): void cancelNotification(id: number): void }; diff --git a/kernel/api/notification.go b/kernel/api/notification.go index 9922396e2..7104ef0ff 100644 --- a/kernel/api/notification.go +++ b/kernel/api/notification.go @@ -19,6 +19,7 @@ package api import ( "net/http" "strings" + "time" "github.com/88250/gulu" "github.com/gin-gonic/gin" @@ -47,6 +48,13 @@ func sendDeviceNotification(c *gin.Context) { channel = "SiYuan Notifications" } + var id int + if nil != arg["id"] { + id = int(arg["id"].(float64)) + } else { + id = int(time.Now().Unix()) + } + var title string if nil != arg["title"] { title = strings.TrimSpace(arg["title"].(string)) @@ -74,6 +82,7 @@ func sendDeviceNotification(c *gin.Context) { util.BroadcastByType("main", "sendDeviceNotification", 0, "", map[string]interface{}{ "channel": channel, + "id": id, "title": title, "body": body, "delayInSeconds": delayInSeconds,