native-sdk.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /**
  2. * 发送消息给 iframe
  3. */
  4. const sendToIframe = function (type, data, requestId) {
  5. if (!this.iframeWindow) {
  6. console.warn('[Parent] Cannot send message: iframe not initialized');
  7. return;
  8. }
  9. const message = { type, data, requestId };
  10. console.log('[Parent] Sending message to iframe:', message);
  11. this.iframeWindow.postMessage(JSON.stringify(message), this.origin);
  12. }
  13. /**
  14. * 转换login信息
  15. */
  16. const translateLoginData = function(info){
  17. return {
  18. uid: info.uid,
  19. is_first_login: info.is_first_login,
  20. is_real_name: info.is_real_name,
  21. login_time: info.login_time,
  22. reg_time: info.reg_time,
  23. user_name: info.user_name,
  24. }
  25. }
  26. var INDEX = {
  27. init: 0, // 初始化
  28. login: 1, // 登录
  29. logout: 2, // 登出
  30. pay: 3, // 支付
  31. report: 4, // 角色上报
  32. onLogout: 5, // 浮标个人/账号中心切换账号
  33. }
  34. window.jsBridge = function (data){
  35. const {callback, param, token} = data
  36. switch(callback){
  37. case INDEX.init:
  38. sendToIframe('INIT_SUCCESS', {success:true, message:"初始化成功"}, token)
  39. break;
  40. case INDEX.login:
  41. sendToIframe('LOGIN_SUCCESS',{success:true, message:"登录成功", data:translateLoginData(param)}, token)
  42. break;
  43. case INDEX.logout:
  44. sendToIframe('LOGOUT_SUCCESS', {success:true, message:"登出成功"}, token)
  45. break;
  46. case INDEX.pay:
  47. sendToIframe('PAY_SUCCESS', {success:true, message:"支付页面打开成功"}, token)
  48. break;
  49. case INDEX.report:
  50. sendToIframe('REPORT_SUCCESS', {success:true, message:"角色上报成功"}, token)
  51. break;
  52. case INDEX.onLogout:
  53. sendToIframe('ONLOGOUT_SUCCESS', {success:true, message:"SDK内退出账号成功"}, token)
  54. break;
  55. }
  56. }