diff --git a/app/src/menus/commonMenuItem.ts b/app/src/menus/commonMenuItem.ts
index 3ab1dae25..b8a6a5306 100644
--- a/app/src/menus/commonMenuItem.ts
+++ b/app/src/menus/commonMenuItem.ts
@@ -6,7 +6,7 @@ import {getSearch, isMobile, isValidCustomAttrName} from "../util/functions";
import {isLocalPath, movePathTo, moveToPath, pathPosix} from "../util/pathName";
import {MenuItem} from "./Menu";
import {onExport, saveExport} from "../protyle/export";
-import {isInAndroid, isInHarmony, isInIOS, openByMobile, writeText} from "../protyle/util/compatibility";
+import {isInAndroid, isInHarmony, isInIOS, isInMobileApp, openByMobile, writeText} from "../protyle/util/compatibility";
import {fetchPost, fetchSyncPost} from "../util/fetch";
import {hideMessage, showMessage} from "../dialog/message";
import {Dialog} from "../dialog";
@@ -785,7 +785,7 @@ export const exportMd = (id: string) => {
id: "exportPDF",
label: window.siyuan.languages.print,
icon: "iconPDF",
- ignore: !isInAndroid() && !isInHarmony() && !isInIOS(),
+ ignore: !isInMobileApp(),
click: () => {
const msgId = showMessage(window.siyuan.languages.exporting);
const localData = window.siyuan.storage[Constants.LOCAL_EXPORTPDF];
diff --git a/app/src/menus/workspace.ts b/app/src/menus/workspace.ts
index 6c9786005..707662035 100644
--- a/app/src/menus/workspace.ts
+++ b/app/src/menus/workspace.ts
@@ -7,7 +7,14 @@ import {getOpenNotebookCount, originalPath, pathPosix, useShell} from "../util/p
import {fetchNewDailyNote, mountHelp, newDailyNote} from "../util/mount";
import {fetchPost} from "../util/fetch";
import {Constants} from "../constants";
-import {isInAndroid, isInHarmony, isInIOS, isIPad, setStorageVal, writeText} from "../protyle/util/compatibility";
+import {
+ isInAndroid,
+ isInHarmony,
+ isInMobileApp,
+ isIPad,
+ setStorageVal,
+ writeText
+} from "../protyle/util/compatibility";
import {openCard} from "../card/openCard";
import {openSetting} from "../config";
import {getAllDocks} from "../layout/getAll";
@@ -318,7 +325,7 @@ export const workspaceMenu = (app: App, rect: DOMRect) => {
});
});
/// #endif
- if (!isBrowser() || isInIOS() || isInAndroid() || isInHarmony()) {
+ if (!isBrowser() || isInMobileApp()) {
window.siyuan.menus.menu.append(new MenuItem({
id: "workspaceList",
label: window.siyuan.languages.workspaceList,
diff --git a/app/src/mobile/index.ts b/app/src/mobile/index.ts
index 4de663891..cbb4dd740 100644
--- a/app/src/mobile/index.ts
+++ b/app/src/mobile/index.ts
@@ -18,9 +18,7 @@ import {activeBlur, hideKeyboardToolbar, showKeyboardToolbar} from "./util/keybo
import {
getLocalStorage,
isChromeBrowser,
- isInAndroid,
- isInHarmony,
- isInIOS,
+ isInMobileApp,
writeText
} from "../protyle/util/compatibility";
import {getCurrentEditor, openMobileFileById} from "./editor";
@@ -195,7 +193,7 @@ class App {
}
}
});
- if (!isInAndroid() && !isInHarmony() && !isInIOS && isChromeBrowser()) {
+ if (!isInMobileApp() && isChromeBrowser()) {
document.querySelector('meta[name="viewport"]').setAttribute("content", "width=device-width, height=device-height, interactive-widget=resizes-content, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, viewport-fit=cover");
}
});
diff --git a/app/src/mobile/menu/index.ts b/app/src/mobile/menu/index.ts
index bd91a23bf..007e4044f 100644
--- a/app/src/mobile/menu/index.ts
+++ b/app/src/mobile/menu/index.ts
@@ -21,9 +21,7 @@ import {App} from "../../index";
import {
isDisabledFeature,
isHuawei,
- isInAndroid,
- isInHarmony,
- isInIOS,
+ isInMobileApp,
isIPhone
} from "../../protyle/util/compatibility";
import {newFile} from "../../util/newFile";
@@ -98,8 +96,8 @@ export const initRightMenu = (app: App) => {
-
-
+
+
diff --git a/app/src/mobile/settings/about.ts b/app/src/mobile/settings/about.ts
index eea14d7f4..4bc8478a0 100644
--- a/app/src/mobile/settings/about.ts
+++ b/app/src/mobile/settings/about.ts
@@ -4,7 +4,12 @@ import {Dialog} from "../../dialog";
import {fetchPost} from "../../util/fetch";
import {confirmDialog} from "../../dialog/confirmDialog";
import {showMessage} from "../../dialog/message";
-import {isInAndroid, isInHarmony, isInIOS, isIPad, openByMobile, writeText} from "../../protyle/util/compatibility";
+import {
+ isInMobileApp,
+ isIPad,
+ openByMobile,
+ writeText
+} from "../../protyle/util/compatibility";
import {exitSiYuan, processSync} from "../../dialog/processSystem";
import {pathPosix} from "../../util/pathName";
import {openModel} from "../menu/model";
@@ -81,7 +86,7 @@ export const initAbout = () => {
${window.siyuan.languages.about18}
-
+
${window.siyuan.languages.about5}
${window.siyuan.languages.systemLogTip}
-
+
${window.siyuan.languages.workspaceList}
diff --git a/app/src/protyle/export/index.ts b/app/src/protyle/export/index.ts
index 4fa586681..d15da9c61 100644
--- a/app/src/protyle/export/index.ts
+++ b/app/src/protyle/export/index.ts
@@ -11,7 +11,7 @@ import {getThemeMode, setInlineStyle} from "../../util/assets";
import {fetchPost, fetchSyncPost} from "../../util/fetch";
import {Dialog} from "../../dialog";
import {replaceLocalPath} from "../../editor/rename";
-import {getScreenWidth, isInAndroid, isInHarmony, isInIOS, setStorageVal} from "../util/compatibility";
+import {getScreenWidth, isInMobileApp, setStorageVal} from "../util/compatibility";
import {getFrontend} from "../../util/functions";
const getPluginStyle = async () => {
@@ -762,7 +762,7 @@ export const onExport = async (data: IWebSocketData, filePath: string, servePath
themeStyle = `
`;
}
const screenWidth = getScreenWidth();
- const isInMobile = isInAndroid() || isInHarmony() || isInIOS();
+ const isInMobile = isInMobileApp();
const mobileHtml = isInMobile ? {
js: `document.body.style.minWidth = "${screenWidth}px";`,
css: `@page { size: A4; margin: 10mm 0 10mm 0; background-color: var(--b3-theme-background); }
diff --git a/app/src/protyle/render/av/render.ts b/app/src/protyle/render/av/render.ts
index 7b9fcd726..2f2b3e59f 100644
--- a/app/src/protyle/render/av/render.ts
+++ b/app/src/protyle/render/av/render.ts
@@ -11,7 +11,7 @@ import {renderAVAttribute} from "./blockAttr";
import {addClearButton} from "../../../util/addClearButton";
import {escapeAriaLabel, escapeAttr, escapeHtml} from "../../../util/escape";
import {electronUndo} from "../../undo";
-import {isInAndroid, isInHarmony, isInIOS} from "../../util/compatibility";
+import {isInMobileApp} from "../../util/compatibility";
import {isMobile} from "../../../util/functions";
import {renderGallery} from "./gallery/render";
import {getFieldsByData, getViewIcon} from "./view";
@@ -466,7 +466,7 @@ export const avRender = async (element: Element, protyle: IProtyle, cb?: (data:
if (e.getAttribute("data-render") === "true" || hasClosestByClassName(e, "av__gallery-content")) {
continue;
}
- if (isMobile() || isInIOS() || isInAndroid() || isInHarmony()) {
+ if (isMobile() || isInMobileApp()) {
e.classList.add("av--touch");
}
diff --git a/app/src/protyle/util/compatibility.ts b/app/src/protyle/util/compatibility.ts
index f36780af6..d7dbc97fa 100644
--- a/app/src/protyle/util/compatibility.ts
+++ b/app/src/protyle/util/compatibility.ts
@@ -350,6 +350,13 @@ export const isInIOS = () => {
return window.siyuan.config.system.container === "ios" && window.webkit?.messageHandlers;
};
+export const isInMobileApp = () => {
+ if (isInAndroid() || isInHarmony() || isInIOS()) {
+ return true;
+ }
+ return false;
+};
+
export const isInHarmony = () => {
return window.siyuan.config.system.container === "harmony" && window.JSHarmony;
};
diff --git a/app/src/util/assets.ts b/app/src/util/assets.ts
index 4ec68c3c7..ce9575519 100644
--- a/app/src/util/assets.ts
+++ b/app/src/util/assets.ts
@@ -6,7 +6,16 @@ import {getAllModels} from "../layout/getAll";
import {exportLayout} from "../layout/util";
/// #endif
import {fetchPost} from "./fetch";
-import {isInAndroid, isInHarmony, isInIOS, isIPad, isIPhone, isMac, isWin11} from "../protyle/util/compatibility";
+import {
+ isInAndroid,
+ isInHarmony,
+ isInIOS,
+ isInMobileApp,
+ isIPad,
+ isIPhone,
+ isMac,
+ isWin11
+} from "../protyle/util/compatibility";
import {setCodeTheme} from "../protyle/render/util";
import {getBackend, getFrontend} from "./functions";
@@ -363,7 +372,7 @@ const rgba2hex = (rgba: string) => {
};
const updateMobileTheme = (OSTheme: string) => {
- if (isInIOS() || isInAndroid() || isInHarmony()) {
+ if (isInMobileApp()) {
setTimeout(() => {
const backgroundColor = rgba2hex(getComputedStyle(document.body).getPropertyValue("--b3-theme-background").trim());
let mode = window.siyuan.config.appearance.mode;