AdSystem.ts 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. import JsbSystem from "./JsbSystem";
  2. /**
  3. * 广告管理类脚本
  4. * @description 显示/播放广告
  5. * @author 冯聪
  6. */
  7. export default class AdSystem {
  8. /** 构造函数
  9. * @param adSdk 传入当前使用广告sdk
  10. */
  11. constructor(adSdk: any) {
  12. this.adSdk = adSdk;
  13. this.init();
  14. }
  15. /** 广告sdk */
  16. public adSdk: any = null;
  17. /** 是否显示广告 */
  18. public ifShowAd: boolean = true;
  19. /** 视频广告回调 */
  20. public videoAdcallBack: Function = null;
  21. /** 初始化广告 */
  22. public init() {
  23. //初始化Topon广告SDK
  24. this.adSdk.initSDK();
  25. }
  26. /**
  27. * 观看广告
  28. * @param callBack 广告相关的回调
  29. */
  30. public watchAd(callBack: Function) {
  31. this.videoAdcallBack = callBack;
  32. if (!this.ifShowAd) {
  33. this.wacthAdSuccess()
  34. }
  35. else {
  36. if (cc.sys.platform != cc.sys.WECHAT_GAME) {
  37. if (cc.sys.os == cc.sys.OS_ANDROID) {
  38. // jsb.reflection.callStaticMethod("org/cocos2dx/javascript/config/TTAdManagerHolder", "showVideo", "(I)V", pop);
  39. this.adSdk.showVideoAd();
  40. }
  41. else if (cc.sys.os == cc.sys.OS_IOS) {
  42. jsb.reflection.callStaticMethod("AppController", "showVideo", "");
  43. }
  44. }
  45. else {
  46. // WxMgr.getInstance().showRewardAd(pop)
  47. }
  48. }
  49. }
  50. /** 观看广告失败 */
  51. public watchAdFail() {
  52. mk.console.log("watchAdFail");
  53. this.videoAdcallBack(false);
  54. }
  55. /** 观看广告取消 */
  56. public watchAdCancel() {
  57. mk.console.log("watchAdCancel");
  58. this.videoAdcallBack(false);
  59. }
  60. /**
  61. * 观看广告成功
  62. * @param placementId 广告位id
  63. */
  64. public wacthAdSuccess(placementId = '') {
  65. mk.console.log("wacthAdSuccess");
  66. this.videoAdcallBack(true);
  67. }
  68. /** 显示原生广告 */
  69. public showNativeAd(type = 0, show = true) {
  70. if (cc.sys.platform != cc.sys.WECHAT_GAME) {
  71. if (cc.sys.os == cc.sys.OS_ANDROID) {
  72. // jsb.reflection.callStaticMethod("org/cocos2dx/javascript/config/TTAdManagerHolder", "showVideo", "(I)V", pop);
  73. this.adSdk.loadNativeAd(type, show);
  74. }
  75. else if (cc.sys.os == cc.sys.OS_IOS) {
  76. }
  77. }
  78. else {
  79. // WxMgr.getInstance().showRewardAd(pop)
  80. }
  81. }
  82. /** 销毁原生广告 */
  83. public destroyNativeAd() {
  84. if (cc.sys.platform != cc.sys.WECHAT_GAME) {
  85. if (cc.sys.os == cc.sys.OS_ANDROID) {
  86. // jsb.reflection.callStaticMethod("org/cocos2dx/javascript/config/TTAdManagerHolder", "showVideo", "(I)V", pop);
  87. this.adSdk.destroyNativeAd();
  88. }
  89. else if (cc.sys.os == cc.sys.OS_IOS) {
  90. }
  91. }
  92. else {
  93. // WxMgr.getInstance().showRewardAd(pop)
  94. }
  95. }
  96. }