From be9b8dc8fd539553451738e7940f8d018af2e07d Mon Sep 17 00:00:00 2001 From: xu_yanfeng Date: Tue, 27 May 2025 18:26:59 +0800 Subject: [PATCH] =?UTF-8?q?everything=E6=8F=92=E4=BB=B6=E8=B4=AD=E4=B9=B0?= =?UTF-8?q?=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/types.ts | 1 + src/scripts/inject/everything.ts | 10 ++++++++-- src/scripts/inject/inspector.ts | 1 + src/views/devtools/everything.vue | 18 ++++++++++++++++++ src/views/devtools/index.vue | 19 +++++++++++++++++++ 5 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 src/views/devtools/everything.vue diff --git a/src/core/types.ts b/src/core/types.ts index 1f36793..347d79f 100644 --- a/src/core/types.ts +++ b/src/core/types.ts @@ -102,6 +102,7 @@ export enum Msg { ResponseMemoryInfo = "response-memory-info", VisibleFPS = "visible-fps", + ResponseBuyEverything = "ResponseBuyEverything", /** * 当前页面信息 */ diff --git a/src/scripts/inject/everything.ts b/src/scripts/inject/everything.ts index a217010..af0f570 100644 --- a/src/scripts/inject/everything.ts +++ b/src/scripts/inject/everything.ts @@ -1,7 +1,13 @@ +import { Msg } from "../../core/types"; +import { Inspector } from "./inspector"; + // 和everything插件交互 export class Everything { // 支持多开creator,遍历everything插件的server - + private inspector: Inspector | null = null; + init(inspector: Inspector) { + this.inspector = inspector; + } test() { const port = 2505; fetch(`http://localhost:${port}/test`) @@ -22,7 +28,7 @@ export class Everything { console.log(e); }) .catch((e) => { - console.log(e); + this.inspector.sendMsgToContent(Msg.ResponseBuyEverything, {}); }); } } diff --git a/src/scripts/inject/inspector.ts b/src/scripts/inject/inspector.ts index debfd5a..a4fd71e 100644 --- a/src/scripts/inject/inspector.ts +++ b/src/scripts/inject/inspector.ts @@ -285,6 +285,7 @@ export class Inspector extends InjectEvent { init() { console.log(...this.terminal.init()); this.watchIsCocosGame(); + everything.init(this); } private watchIsCocosGame() { diff --git a/src/views/devtools/everything.vue b/src/views/devtools/everything.vue new file mode 100644 index 0000000..3ee72b5 --- /dev/null +++ b/src/views/devtools/everything.vue @@ -0,0 +1,18 @@ + + + diff --git a/src/views/devtools/index.vue b/src/views/devtools/index.vue index 766e572..703437a 100644 --- a/src/views/devtools/index.vue +++ b/src/views/devtools/index.vue @@ -29,6 +29,7 @@ import { GA_Button } from "../../ga/type"; import { bridge } from "./bridge"; import { Bus, BusMsg } from "./bus"; import { FrameDetails, NodeInfoData, TreeData } from "./data"; +import Everything from "./everything.vue"; import Find from "./find.vue"; import Hierarchy from "./hierarchy.vue"; import Inspector from "./inspector.vue"; @@ -38,6 +39,7 @@ import { Timer } from "./timer"; import Properties from "./ui/propertys.vue"; import SettingsVue from "./ui/settings.vue"; import { checkSupport } from "./util"; +import { DialogOptions, DialogUrlData } from "@xuyanfeng/cc-ui/types/cc-dialog/const"; const { CCTree, CCFootBar, CCMenu, CCDialog, CCInput, CCButton, CCInputNumber, CCSelect, CCButtonGroup, CCCheckBox, CCColor, CCDivider } = ccui.components; interface FrameInfo { label: string; @@ -136,6 +138,23 @@ export default defineComponent({ let data: Array = event.data; isShowDebug.value = true; }); + bridge.on(Msg.ResponseBuyEverything, (event: PluginEvent) => { + // ccui.dialog.showDialog({ + // comp: Everything, + // title: "提示", + // }); + const data = new ccui.dialog.DialogUrlData(); + data.label = "该功能需要{everything}插件支持,请在creator中安装插件后重试。"; + data.jump = 0; + data.url = "https://store.cocos.com/app/detail/7391"; + const opts: DialogOptions = { + data, + title: "提示", + width: 180, + height: 100, + }; + ccui.dialog.showDialog(opts); + }); bridge.on(Msg.DevtoolConnectError, (event: PluginEvent) => { const msg = event.data; ccui.footbar.showError(`Devtools connect error:\n${msg}`);