QgIntersAd.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import Tools from "../../Tools";
  2. import Global from "../../Global";
  3. import LogMgr from "../../LogMgr";
  4. export default class QgIntersAd {
  5. private static initInterstitialAd: any; //插屏对象
  6. public static isLoad_Inters: boolean = false;
  7. /**
  8. * 创建插屏
  9. */
  10. public static createInters() {
  11. return new Promise((resolve, reject) => {
  12. if (!Global.isVivo) {
  13. LogMgr.error('当前非vivo平台,无法创建插屏');
  14. reject(false) ;
  15. return
  16. }
  17. let unitId = Tools.getRandomByArray(Global.config.advertisingConfig.interstitialAdId);
  18. if (!unitId) {
  19. LogMgr.error('插屏Id获取失败:' + unitId)
  20. reject(false) ;
  21. return
  22. }
  23. // @ts-ignore
  24. this.initInterstitialAd = window.qg.createInterstitialAd({adUnitId: unitId});
  25. this.initInterstitialAd.onError((err) => { //监听插屏错误
  26. LogMgr.error('插屏错误onError:', err);
  27. })
  28. this.initInterstitialAd.onLoad((res) => {
  29. this.isLoad_Inters = true;
  30. LogMgr.log('插屏广告加载完成-onload触发', JSON.stringify(res));
  31. })
  32. this.initInterstitialAd.onClose(() =>{
  33. this.isLoad_Inters = false;
  34. LogMgr.log('插屏关闭>>>>>>') ;
  35. this.createInters().then() ;
  36. })
  37. resolve(true)
  38. })
  39. }
  40. /**
  41. * 展示插屏
  42. */
  43. public static showInters() {
  44. if (!this.isLoad_Inters || !this.initInterstitialAd) {
  45. LogMgr.error('插屏加载中......',this.isLoad_Inters,'rewardedAd:',this.initInterstitialAd);
  46. this.createInters().then().catch() ;
  47. return
  48. }
  49. this.initInterstitialAd.show().then(() => {
  50. }).catch((err) => {
  51. LogMgr.error('插屏广告展示失败', JSON.stringify(err));
  52. })
  53. }
  54. }