From 4a2abf55f60384088e262db61a58afebf7c5e41a Mon Sep 17 00:00:00 2001 From: JianMiau Date: Mon, 29 Aug 2022 15:25:13 +0800 Subject: [PATCH] =?UTF-8?q?[add]=20CocosBridge=20=E5=A4=9A=E5=80=8Bvalue?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/Script/Manager.ts | 12 ++++++++---- assets/Script/NativeClass.ts | 21 ++++++++++++++++++++- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/assets/Script/Manager.ts b/assets/Script/Manager.ts index 8df70a9..bb43dcf 100644 --- a/assets/Script/Manager.ts +++ b/assets/Script/Manager.ts @@ -1,3 +1,4 @@ +import { System_Eevent } from "./Engine/CatanEngine/CSharp/System/System_Eevent"; import NativeClass from "./NativeClass"; const { ccclass, property } = cc._decorator; @@ -28,7 +29,7 @@ export default class Manager extends cc.Component { console.log("Debug"); } - new NativeClass(); + new NativeClass(this.webview); let self: this = this; // this._text_to_Speech = new Text_to_Speech(); @@ -44,9 +45,6 @@ export default class Manager extends cc.Component { cc.view.setResizeCallback(this._resize.bind(this)); this._resize(); - const FCMToken: string = NativeClass.Instance.GetFCMToken(); - console.log(`FCMToken ${FCMToken}`); - // Set EventListener window.addEventListener("message", function (e: MessageEvent): void { let data: any = e.data; @@ -79,6 +77,12 @@ export default class Manager extends cc.Component { }); } + protected start(): void { + const FCMToken: string = NativeClass.Instance.GetFCMToken(); + console.log(`FCMToken ${FCMToken}`); + NativeClass.Instance.CocosBridge(System_Eevent.SetFCMToken, FCMToken, 666); + } + /** 跨版本溝通 * @example * CallParent('Speak', '我愛豬涵') diff --git a/assets/Script/NativeClass.ts b/assets/Script/NativeClass.ts index fc7af63..2ff8abd 100644 --- a/assets/Script/NativeClass.ts +++ b/assets/Script/NativeClass.ts @@ -1,5 +1,7 @@ // import Text_to_Speech from "./Text_to_Speech"; +import { System_Eevent } from "./Engine/CatanEngine/CSharp/System/System_Eevent"; + const { ccclass } = cc._decorator; @ccclass @@ -13,6 +15,8 @@ export default class NativeClass extends cc.Component { //#region public 屬性 + public WebView: cc.WebView = null; + public URLscheme: Object = {}; public URLschemeFlags: number = 0; @@ -27,9 +31,10 @@ export default class NativeClass extends cc.Component { //#region Lifecycle - constructor() { + constructor(...param: any[]) { super(); NativeClass._instance = this; + this.WebView = param[0]; this.init(); } @@ -132,6 +137,20 @@ export default class NativeClass extends cc.Component { //#region Custom Function + /** CocosBridge */ + public CocosBridge(type: System_Eevent, ...param: any[]): void { + let value: string = ""; + for (let i: number = 0; i < param.length; i++) { + let element: any = param[i]; + if (element === "") { + element = "\"\""; + } + value += `,${element}`; + } + let command: string = `window.CocosBridge(${type}${value})`; + this.WebView.evaluateJS(command); + } + /** GetFCMToken */ public GetFCMToken(): string { let resp: any = "";