LoginHandler.ts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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-30 18:32:37
  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. //获取当前版本状态
  23. async getVersionStatus() {
  24. const data = { method: 'system.debug.get' };
  25. const result = await CocosHandler.inst.sendMessageToAndroid(data, '获取版本状态');
  26. return JSON.parse(result);
  27. }
  28. //关闭安卓启动页
  29. closeAndroidSplash() {
  30. const data = { method: 'start.scene.hide' };
  31. CocosHandler.inst.sendMessageToAndroid(data, '关闭安卓启动页');
  32. }
  33. async getPrivacyStatus() {
  34. //这直接调关闭安卓
  35. this.closeAndroidSplash();
  36. const data = { method: 'privacy.grant.get' };
  37. const result = await CocosHandler.inst.sendMessageToAndroid(data, '获取隐私授权状态');
  38. return JSON.parse(result);
  39. }
  40. async savePrivacyStatus(status: boolean) {
  41. const data = {
  42. method: 'privacy.grant.set',
  43. param: JSON.stringify({ granted: status })
  44. };
  45. const result = await CocosHandler.inst.sendMessageToAndroid(data, '保存隐私授权状态');
  46. return JSON.parse(result);
  47. }
  48. openAgreement() {
  49. const type = smc.game.GameModel.protocolType;
  50. const url = type === 1 ? oops.config.game.gamePrivacyUrl : oops.config.game.gameProtocolUrl;
  51. const data = {
  52. method: 'system.browser.open',
  53. param: JSON.stringify({ url })
  54. };
  55. CocosHandler.inst.sendMessageToAndroid(data, '打开协议链接');
  56. }
  57. async wechatLogin() {
  58. const param = {
  59. callback: {
  60. onSuccess: 'LoginHandler.inst.wechatLoginSuccess',
  61. onFail: 'LoginHandler.inst.wechatLoginFail'
  62. }
  63. };
  64. const data = {
  65. method: 'auth.wechat',
  66. param: JSON.stringify(param)
  67. };
  68. await CocosHandler.inst.sendMessageToAndroid(data, '微信登录');
  69. }
  70. wechatLoginSuccess(str: string) {
  71. //console.log('[微信] 登录成功', str);
  72. // this.wxLogin(str);
  73. //向服务器申请登录
  74. ServerHandler.inst.wxLogin(str);
  75. DCHandler.inst.reportData(3000004, 1001);
  76. }
  77. wechatLoginFail(str: number) {
  78. // console.log('[微信] 登录失败', str);
  79. switch (str) {
  80. case -5:
  81. oops.gui.toast('登录失败,微信未安装~');
  82. break;
  83. default:
  84. oops.gui.toast('登录失败,请稍后再试~');
  85. break
  86. }
  87. DCHandler.inst.reportData(3000004, 1002);
  88. }
  89. }
  90. window["LoginHandler"] = LoginHandler;