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}`);