// LoginHandler.ts import { oops } from 'db://oops-framework/core/Oops'; import { smc } from '../SingletonModuleComp'; import { ServerHandler } from './ServerHandler'; import { CocosHandler } from './CocosHandler'; export class LoginHandler { private static _inst: LoginHandler; public static get inst(): LoginHandler { if (!this._inst) { this._inst = new LoginHandler(); } return this._inst; } async getPrivacyStatus() { const data = { method: 'privacy.grant.get' }; const result = await CocosHandler.inst.sendMessageToAndroid(data, '获取隐私授权状态'); return JSON.parse(result); } async savePrivacyStatus(status: boolean) { const data = { method: 'privacy.grant.set', param: JSON.stringify({ granted: status }) }; const result = await CocosHandler.inst.sendMessageToAndroid(data, '保存隐私授权状态'); return JSON.parse(result); } openAgreement() { const type = smc.game.GameModel.protocolType; const url = type === 1 ? oops.config.game.gamePrivacyUrl : oops.config.game.gameProtocolUrl; const data = { method: 'system.browser.open', param: JSON.stringify({ url }) }; CocosHandler.inst.sendMessageToAndroid(data, '打开协议链接'); } async wechatLogin() { const param = { callback: { onSuccess: 'LoginHandler.inst.wechatLoginSuccess', onFaile: 'LoginHandler.inst.wechatLoginFail' } }; const data = { method: 'auth.wechat', param: JSON.stringify(param) }; await CocosHandler.inst.sendMessageToAndroid(data, '微信登录'); } wechatLoginSuccess(str: string) { console.log('[微信] 登录成功', str); this.wxLogin(str); } wechatLoginFail(str: string) { console.log('[微信] 登录失败', str); oops.gui.toast('微信登录失败'); } async wxLogin(code: string) { const param = { method: 'request.post', param: JSON.stringify({ code, url: '/api/wxlogin' }) // 修改为实际接口 }; const result = await CocosHandler.inst.sendMessageToAndroid(param, '请求服务器微信登录'); if (result?.data) { ServerHandler.inst.getAccountInfo(); } } } window["LoginHandler"] = LoginHandler;