MiddleAD.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. cc.Class({
  2. /**
  3. * 收到JNI发上来的事件
  4. *
  5. * @author Pyden
  6. * @date 2020-03-11
  7. * @param {Object} eventData
  8. */
  9. handleEvent (eventData) {
  10. /* eventData参数:
  11. * @param {String} sdkName
  12. * @param {String} eventKey
  13. * @param {Integer} code
  14. * @param {String} errorMsg
  15. * @param {Object} data
  16. */
  17. let eventKey = eventData.eventKey;
  18. if (eventData.data && eventData.sdkName) {
  19. eventData.data.sdkName = eventData.sdkName;
  20. }
  21. switch (eventKey) {
  22. case 'ad_error': {
  23. cc.game.emit('e_middle_ad_error', eventData);
  24. break;
  25. }
  26. case 'ad_showed': {
  27. cc.game.emit('e_middle_ad_showed', eventData);
  28. break;
  29. }
  30. case 'ad_closed': {
  31. cc.game.emit('e_middle_ad_closed', eventData);
  32. break;
  33. }
  34. case 'ad_clicked': {
  35. cc.game.emit('e_middle_ad_clicked', eventData);
  36. break;
  37. }
  38. case 'ad_award': {
  39. cc.game.emit('e_middle_ad_award', eventData);
  40. break;
  41. }
  42. case 'ad_skip': {
  43. cc.game.emit('e_middle_ad_skip', eventData);
  44. break;
  45. }
  46. default:
  47. break;
  48. }
  49. },
  50. /**
  51. * 获取广告模块的配置信息
  52. *
  53. * @author Pyden
  54. * @date 2020-03-23
  55. * @returns {Object}
  56. * config.list 广告SDK类型信息列表
  57. */
  58. getConfig () {
  59. if (!this._config) {
  60. let gameConfig = G.MiddleMgr.getGameConfig();
  61. if (gameConfig && gameConfig.ad) {
  62. this._config = gameConfig.ad;
  63. }
  64. }
  65. return this._config;
  66. },
  67. /**
  68. * 获取广告SDK类型信息列表
  69. *
  70. * @author Pyden
  71. * @date 2020-03-11
  72. * @returns {Array}
  73. * name
  74. * sdkName
  75. */
  76. getSDKTypeInfoList () {
  77. let config = this.getConfig() || {};
  78. return config.list;
  79. },
  80. /**
  81. * 销毁所有广告
  82. *
  83. * @author Pyden
  84. * @date 2020-03-11
  85. */
  86. clearAllSDKAD () {
  87. let sdkTypeInfoList = this.getSDKTypeInfoList();
  88. for (const v of sdkTypeInfoList) {
  89. this.clearAllAD(v.sdkName);
  90. }
  91. },
  92. /**
  93. * 加载并展示广告
  94. *
  95. * @author Pyden
  96. * @date 2020-03-11
  97. * @param {String} sdkName 广告SDK名称
  98. * @param {Integer} adType 广告类型
  99. * @param {Integer} adId 广告参数
  100. * @param {Integer} positionId 广告入口
  101. * @param {Object} uiInfo 广告UI信息,如尺寸、时间等
  102. */
  103. loadAndShowAD (sdkName, adType, adId, positionId, uiInfo) {
  104. },
  105. /**
  106. * 销毁指定广告
  107. *
  108. * @author Pyden
  109. * @date 2020-03-11
  110. * @param {String} sdkName 广告SDK名称
  111. * @param {Integer} adType 广告类型
  112. * @param {Integer} adId 广告参数
  113. * @param {Integer} positionId 广告入口
  114. */
  115. clearAD (sdkName, adType, adId, positionId) {
  116. },
  117. /**
  118. * 销毁全部广告类型
  119. *
  120. * @author Pyden
  121. * @date 2020-03-11
  122. * @param {String} sdkName 广告SDK名称
  123. */
  124. clearAllAD (sdkName) {
  125. },
  126. /**
  127. * 设置广告是否可见
  128. *
  129. * @author Pyden
  130. * @date 2020-03-11
  131. * @param {String} sdkName 广告SDK名称
  132. * @param {Integer} adType 广告类型
  133. * @param {Integer} adId 广告参数
  134. * @param {Integer} positionId 广告入口
  135. * @param {Boolean} visible 是否可见
  136. */
  137. setADVisible (sdkName, adType, adId, positionId, visible) {
  138. },
  139. /**
  140. * 设置广告用户协议是否同意 —— 目前仅华为 ad_setAdUserProtocolAgreeState
  141. *
  142. * @author Pyden
  143. * @date 2020-03-11
  144. * @param {String} sdkName 广告SDK名称
  145. * @param {Boolean} value
  146. */
  147. setAdUserProtocolAgreeState (sdkName, value) {
  148. }
  149. });