123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- import Game from "../../../Scene/Game";
- import Tools from "../../Tools";
- import Global from "../../Global";
- import LogMgr from "../../LogMgr";
- export default class QgBanner {
- public static isLoad: boolean = false; //加载状态
- private static bannerAd: any; //banner对象
- public static isShow: boolean = false; //显示状态
- /**
- * 创建banner
- */
- public static createBanner() {
- return new Promise((resolve, reject) => {
- if (!Global.isVivo) {
- LogMgr.error('当前非vivo平台,无法创建Banner');
- reject(false);
- return
- }
- let unitId = Tools.getRandomByArray(Global.config.advertisingConfig.bannerAdId);
- if (!unitId) {
- LogMgr.error('BannerId获取失败:' + unitId);
- reject(false);
- return
- }
- let banner_exm = Game.Ins.banner
- let size = Tools.getRealSize(banner_exm)
- let refreshTime = 30 ;
- if (Global.config.bannerRefreshTime >= 30) {
- refreshTime = Global.config.bannerRefreshTime ;
- }
- let bannerParam = {
- adUnitId: unitId,
- style: {
- left: size.left,
- top: size.top,
- },
- adIntervals: refreshTime,
- };
- // @ts-ignore
- this.bannerAd = qg.createBannerAd(bannerParam);
- this.bannerAd.onLoad((res) => {
- this.isLoad = true;
- LogMgr.log('Banner广告加载完成-onload触发', JSON.stringify(res));
- resolve(true);
- })
- this.bannerAd.onClose(()=>{
- LogMgr.log('Banner关闭......')
- })
- this.bannerAd.onError((err) => {
- LogMgr.error('Banner错误:err:', err);
- reject(false);
- })
- })
- }
- /**
- *展示Banner
- */
- public static showBanner() {
- if (!this.isLoad) {
- this.createBanner().then();
- LogMgr.error('Banner未创建或未加载,无法显示')
- return
- }
- if (this.isShow) {
- LogMgr.error('Banner已显示,无法重复显示') ;
- return
- }
- this.bannerAd.show().then(() => {
- this.isShow = true;
- }).catch((err) => {
- LogMgr.error('Banner显示错误:', err);
- })
- }
- /**
- * 隐藏Banner
- */
- public static hideBanner() {
- if (!this.isLoad) {
- LogMgr.error('Banner未创建或未加载,无法隐藏')
- return
- }
- if (!this.isShow) {
- LogMgr.error('Banner未显示,无需隐藏')
- return
- }
- this.bannerAd.hide();
- this.isShow = false;
- }
- /**
- * 销毁Banner实例
- */
- public static destroyBanner() {
- return new Promise((resolve) => {
- if (!this.bannerAd) {
- LogMgr.error('Banner未创建>>>无法destroy()');
- resolve(false);
- return
- }
- this.bannerAd.destroy();
- this.isLoad = false;
- this.isShow = false;
- resolve(true);
- })
- }
- /**
- * 刷新Banner
- */
- public static cutBanner() {
- return new Promise((resolve) => {
- this.destroyBanner().then((res) => {
- if (res) {
- this.createBanner().then(()=>{
- this.showBanner();
- });
- }
- resolve(true);
- })
- })
- }
- }
|