mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-03-13 07:56:14 +01:00
This commit is contained in:
parent
c39b25f1ef
commit
285e61d13f
3 changed files with 69 additions and 1 deletions
|
|
@ -10,7 +10,7 @@ import {openNewWindow, openNewWindowById} from "../window/openNewWindow";
|
|||
import {Tab} from "../layout/Tab";
|
||||
/// #endif
|
||||
import {updateHotkeyTip} from "../protyle/util/compatibility";
|
||||
import * as platformUtils from "../protyle/util/compatibility";
|
||||
import * as platformUtils from "./platformUtils";
|
||||
import {App} from "../index";
|
||||
import {Constants} from "../constants";
|
||||
import {Setting} from "./Setting";
|
||||
|
|
|
|||
58
app/src/plugin/platformUtils.ts
Normal file
58
app/src/plugin/platformUtils.ts
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
import * as compatibility from "../protyle/util/compatibility";
|
||||
|
||||
export const openByMobile = compatibility.openByMobile;
|
||||
export const readText = compatibility.readText;
|
||||
export const writeText = compatibility.writeText;
|
||||
export const copyPlainText = compatibility.copyPlainText;
|
||||
export const getEventName = compatibility.getEventName;
|
||||
export const isOnlyMeta = compatibility.isOnlyMeta;
|
||||
export const isNotCtrl = compatibility.isNotCtrl;
|
||||
export const isHuawei = compatibility.isHuawei;
|
||||
export const isIPhone = compatibility.isIPhone;
|
||||
export const isIPad = compatibility.isIPad;
|
||||
export const isMac = compatibility.isMac;
|
||||
export const isInAndroid = compatibility.isInAndroid;
|
||||
export const isInIOS = compatibility.isInIOS;
|
||||
export const updateHotkeyTip = compatibility.updateHotkeyTip;
|
||||
export const getLocalStorage = compatibility.getLocalStorage;
|
||||
export const setStorageVal = compatibility.setStorageVal;
|
||||
|
||||
/// #if BROWSER
|
||||
export const sendMobileAppNotification = (channel: string, title: string, body: string, delayInSeconds: number): Promise<number> => {
|
||||
return new Promise((resolve) => {
|
||||
if (window.JSAndroid && window.JSAndroid.sendNotification) {
|
||||
const id = window.JSAndroid.sendNotification(channel, title, body, delayInSeconds);
|
||||
resolve(id);
|
||||
} else if (window.JSHarmony && window.JSHarmony.sendNotification) {
|
||||
const id = window.JSHarmony.sendNotification(channel, title, body, delayInSeconds);
|
||||
resolve(id);
|
||||
} else if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.sendNotification) {
|
||||
const callbackId = "cb_" + Date.now();
|
||||
// 定义临时回调
|
||||
if (!window.webkit.nativeCallbacks) {
|
||||
window.webkit.nativeCallbacks = {};
|
||||
}
|
||||
window.webkit.nativeCallbacks[callbackId] = (id:number) => {
|
||||
delete window.webkit.nativeCallbacks[callbackId];
|
||||
resolve(id);
|
||||
};
|
||||
window.webkit.messageHandlers.sendNotification.postMessage({
|
||||
title,
|
||||
body,
|
||||
delay: delayInSeconds,
|
||||
callback: `window.webkit.nativeCallbacks.${callbackId}`
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
export const cancelMobileAppNotification = (id: number) => {
|
||||
if (window.JSAndroid && window.JSAndroid.cancelNotification) {
|
||||
window.JSAndroid.cancelNotification(id);
|
||||
} else if (window.JSHarmony && window.JSHarmony.cancelNotification) {
|
||||
window.JSHarmony.cancelNotification(id);
|
||||
} else if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.cancelNotification) {
|
||||
window.webkit.messageHandlers.cancelNotification.postMessage(id);
|
||||
}
|
||||
};
|
||||
/// #endif
|
||||
10
app/src/types/index.d.ts
vendored
10
app/src/types/index.d.ts
vendored
|
|
@ -221,6 +221,7 @@ interface Window {
|
|||
};
|
||||
pdfjsLib: any;
|
||||
webkit: {
|
||||
nativeCallbacks: { [key: string]: (id: number) => void },
|
||||
messageHandlers: {
|
||||
openLink: { postMessage: (url: string) => void }
|
||||
startKernelFast: { postMessage: (url: string) => void }
|
||||
|
|
@ -229,6 +230,15 @@ interface Window {
|
|||
purchase: { postMessage: (url: string) => void }
|
||||
print: { postMessage: (html: string) => void }
|
||||
exit: { postMessage: (text: string) => void }
|
||||
sendNotification: {
|
||||
postMessage: (options: {
|
||||
title: string,
|
||||
body: string,
|
||||
delay: number,
|
||||
callback: string
|
||||
}) => number
|
||||
}
|
||||
cancelNotification: { postMessage: (id: number) => void }
|
||||
}
|
||||
};
|
||||
htmlToImage: {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue