123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- import Tools from "../../Tools";
- import Global from "../../Global";
- import LogMgr from "../../LogMgr";
- export default class QgNative {
- private static nativeAd: any; //原生广告对象
- public static isLoad_Native: boolean = false;
- private static nativeResolve = null ;
- public static nativeMessage : any = null ;
- /**
- * 创建原生广告
- */
- public static createNative () {
- return new Promise((resolve, reject) => {
- if (!Global.isVivo) {
- LogMgr.error('当前非vivo平台,无法创建原生广告');
- reject(false) ;
- return
- }
- let unitId = Tools.getRandomByArray(Global.config.advertisingConfig.nativeAdId);
- if (!unitId) {
- LogMgr.error('原生ID获取失败:' + unitId);
- reject(false) ;
- return
- }
- // @ts-ignore
- this.nativeAd = qg.createNativeAd({posId : unitId});
- this.nativeAd.onLoad((res)=>{
- if (res && res.adList) {
- LogMgr.log('原生广告拉取成功>>>>>>',res.adList) ;
- this.nativeMessage = res.adList[0] ;
- this.nativeResolve(res.adList[0]) ;
- this.isLoad_Native = true ;
- }
- this.nativeResolve = null ;
- })
- resolve(true);
- })
- }
- /**
- * 加载原生广告
- */
- public static loadNative () {
- return new Promise((resolve)=>{
- this.nativeResolve = resolve ;
- if (!this.nativeAd) {
- LogMgr.error('原生广告未创建,无法加载......')
- this.createNative().then(()=>{}).catch() ;
- this.nativeResolve(false) ;
- this.nativeResolve = null ;
- return
- }
- if (this.nativeMessage != null) {
- this.nativeResolve(this.nativeMessage) ;
- this.nativeResolve = null ;
- }
- this.nativeAd.load().then(()=>{
- }).catch(()=>{
- this.nativeResolve(false) ;
- }) ;
- })
- }
- /**
- * 上报原生广告曝光
- */
- public static repAdShow (adId) {
- if (!this.nativeAd) return ;
- LogMgr.log('上报用户曝光>>>>>>')
- this.nativeAd.reportAdShow({
- adId: adId
- }) ;
- }
- /**
- * 上报原生广告点击
- */
- public static repAdClick (adId) {
- if (!this.nativeAd) return ;
- LogMgr.log('上报用户点击>>>>>>')
- this.nativeAd.reportAdClick({
- adId: adId
- })
- }
- /**
- * 重新拉去广告信息
- */
- public static anewLoad () {
- this.nativeMessage = null ;
- this.isLoad_Native = false ;
- this.loadNative().then() ;
- }
- }
|