diff --git a/app/src/mobile/index.ts b/app/src/mobile/index.ts index d9eaa06d9..6cf980c16 100644 --- a/app/src/mobile/index.ts +++ b/app/src/mobile/index.ts @@ -101,29 +101,6 @@ class App { initFramework(this, confResponse.data.start); initRightMenu(this); openChangelog(); - const unPinsMenu: IMenu[] = []; - this.plugins.forEach(item => { - const unPinMenu = afterLoadPlugin(item); - if (unPinMenu) { - unPinMenu.forEach(unpinItem => { - unPinsMenu.push(unpinItem); - }); - } - }); - if (unPinsMenu.length > 0) { - const pluginElement = document.createElement("div"); - pluginElement.classList.add("b3-menu__item"); - pluginElement.setAttribute("data-menu", "true"); - pluginElement.innerHTML = ``; - pluginElement.addEventListener("click", () => { - const menu = new Menu(); - unPinsMenu.forEach(item => { - menu.addItem(item); - }); - menu.fullscreen(); - }); - document.querySelector("#menuAbout").after(pluginElement); - } }); }); }); diff --git a/app/src/mobile/menu/index.ts b/app/src/mobile/menu/index.ts index 61a637578..02af2002d 100644 --- a/app/src/mobile/menu/index.ts +++ b/app/src/mobile/menu/index.ts @@ -18,6 +18,9 @@ import {initEditor} from "../settings/editor"; import {App} from "../../index"; import {isHuawei, isInAndroid, isInIOS} from "../../protyle/util/compatibility"; import {newFile} from "../../util/newFile"; +import {afterLoadPlugin} from "../../plugin/loader"; +import {Menu} from "../../plugin/Menu"; +import {commandPanel} from "../../plugin/commandPanel"; export const popMenu = () => { activeBlur(); @@ -101,6 +104,9 @@ export const initRightMenu = (app: App) => {
+ `; processSync(); + const unPinsMenu: IMenu[] = []; + app.plugins.forEach(item => { + const unPinMenu = afterLoadPlugin(item); + if (unPinMenu) { + unPinMenu.forEach(unpinItem => { + unPinsMenu.push(unpinItem); + }); + } + }); // 只能用 click,否则无法上下滚动 https://github.com/siyuan-note/siyuan/issues/6628 menuElement.addEventListener("click", (event) => { let target = event.target as HTMLElement; @@ -160,6 +175,25 @@ export const initRightMenu = (app: App) => { event.preventDefault(); event.stopPropagation(); break; + } else if (target.id === "menuPlugin") { + const menu = new Menu(); + menu.addItem({ + icon: "iconLayoutBottom", + label: window.siyuan.languages.commandPanel, + click() { + commandPanel(app); + } + }); + if (unPinsMenu.length > 0) { + menu.addSeparator(); + } + unPinsMenu.forEach(item => { + menu.addItem(item); + }); + menu.fullscreen(); + event.preventDefault(); + event.stopPropagation(); + break; } else if (target.id === "menuNewDaily") { newDailyNote(app); closePanel(); diff --git a/app/src/plugin/commandPanel.ts b/app/src/plugin/commandPanel.ts index 36cfedc93..46f73e929 100644 --- a/app/src/plugin/commandPanel.ts +++ b/app/src/plugin/commandPanel.ts @@ -1,15 +1,19 @@ import {Dialog} from "../dialog"; import {App} from "../index"; import {upDownHint} from "../util/upDownHint"; +/// #if !MOBILE import {openSetting} from "../config"; +/// #endif import {updateHotkeyTip} from "../protyle/util/compatibility"; +import {isMobile} from "../util/functions"; export const commandPanel = (app: App) => { const dialog = new Dialog({ - width: "80vw", - height: "70vh", - content: `