LoginHandler.ts 2.7 KB

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