LoginHandler.ts 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. /*
  2. * @Author: mojunshou 1637302775@qq.com
  3. * @Date: 2025-04-11 10:15:45
  4. * @LastEditors: mojunshou 1637302775@qq.com
  5. * @LastEditTime: 2025-04-22 18:44:21
  6. * @Description: 登录管理
  7. */
  8. // LoginHandler.ts
  9. import { oops } from 'db://oops-framework/core/Oops';
  10. import { smc } from '../SingletonModuleComp';
  11. import { CocosHandler } from './CocosHandler';
  12. import { ServerHandler } from './ServerHandler';
  13. export class LoginHandler {
  14. private static _inst: LoginHandler;
  15. public static get inst(): LoginHandler {
  16. if (!this._inst) {
  17. this._inst = new LoginHandler();
  18. }
  19. return this._inst;
  20. }
  21. async getPrivacyStatus() {
  22. const data = { method: 'privacy.grant.get' };
  23. const result = await CocosHandler.inst.sendMessageToAndroid(data, '获取隐私授权状态');
  24. return JSON.parse(result);
  25. }
  26. async savePrivacyStatus(status: boolean) {
  27. const data = {
  28. method: 'privacy.grant.set',
  29. param: JSON.stringify({ granted: status })
  30. };
  31. const result = await CocosHandler.inst.sendMessageToAndroid(data, '保存隐私授权状态');
  32. return JSON.parse(result);
  33. }
  34. openAgreement() {
  35. const type = smc.game.GameModel.protocolType;
  36. const url = type === 1 ? oops.config.game.gamePrivacyUrl : oops.config.game.gameProtocolUrl;
  37. const data = {
  38. method: 'system.browser.open',
  39. param: JSON.stringify({ url })
  40. };
  41. CocosHandler.inst.sendMessageToAndroid(data, '打开协议链接');
  42. }
  43. async wechatLogin() {
  44. const param = {
  45. callback: {
  46. onSuccess: 'LoginHandler.inst.wechatLoginSuccess',
  47. onFail: 'LoginHandler.inst.wechatLoginFail'
  48. }
  49. };
  50. const data = {
  51. method: 'auth.wechat',
  52. param: JSON.stringify(param)
  53. };
  54. await CocosHandler.inst.sendMessageToAndroid(data, '微信登录');
  55. }
  56. wechatLoginSuccess(str: string) {
  57. console.log('[微信] 登录成功', str);
  58. // this.wxLogin(str);
  59. //向服务器申请登录
  60. ServerHandler.inst.wxLogin(str);
  61. }
  62. wechatLoginFail(str: number) {
  63. console.log('[微信] 登录失败', str);
  64. switch (str) {
  65. case -5:
  66. oops.gui.toast('登录失败,微信未安装~');
  67. break;
  68. default:
  69. oops.gui.toast('登录失败,请稍后再试~');
  70. break
  71. }
  72. }
  73. }
  74. window["LoginHandler"] = LoginHandler;