/** * 对应 Unity Application.ExternalCall * Web 环境下调用 window 上的全局回调 */ /** 对齐 Unity GameManager.ExternalLevelInfo(关卡加载完成时回传) */ export interface ExternalLevelInfo { LevelID: number; PlayerName: string; VehicleName: string; } declare global { interface Window { processData?: (json: string) => void; processVehicleData?: (json: string) => void; externalResult?: (json: string) => void; externalLevelInfo?: (json: string) => void; coinsData?: (json: string) => void; /** 主站对接:cocos-bridge.js 可选钩子 */ __tfrhOnExternalLevelInfo?: (json: string) => void; [key: string]: unknown; } } export class JsBridge { static call(callbackName: string, jsonData: string) { if (typeof window !== 'undefined') { const fn = window[callbackName]; if (typeof fn === 'function') { (fn as (json: string) => void)(jsonData); return; } } console.log(`[JsBridge] ${callbackName}`, jsonData); } /** Unity ExternalCallLevelInfo → Application.ExternalCall("externalLevelInfo", json) */ static notifyExternalLevelInfo(info: ExternalLevelInfo) { const json = JSON.stringify(info); this.call('externalLevelInfo', json); } }