2 lines
2.4 KiB
JavaScript
2 lines
2.4 KiB
JavaScript
"use strict";const s=require("../../../common/vendor.js"),t="RewardedVideo",i="FullScreenVideo";const o="csj";class e{constructor(s,t={}){this._isLoad=!1,this._isLoading=!1,this._lastLoadTime=0,this._lastError=null,this._retryCount=0,this._loadCallback=null,this._closeCallback=null,this._errorCallback=null;const i=this._ad=s;i.onLoad((s=>{this._isLoading=!1,this._isLoad=!0,this._lastLoadTime=Date.now(),this.onLoad()})),i.onClose((s=>{this._isLoad=!1,this.onClose(s)})),i.onVerify&&i.onVerify((s=>{})),i.onError((({code:s,message:t})=>{this._isLoading=!1;const i={code:s,errMsg:t};if(-5008!==s){if(this._retryCount<1)return this._retryCount+=1,void this._loadAd();this._lastError=i,this.onError(i)}else this._loadAd()}))}get isExpired(){return 0!==this._lastLoadTime&&Math.abs(Date.now()-this._lastLoadTime)>18e5}get isLoading(){return this._isLoading}getProvider(){return this._ad.getProvider()}load(s,t){this._loadCallback=s,this._errorCallback=t,this._isLoading||(this._isLoad?this.onLoad():(this._retryCount=0,this._loadAd()))}show(s){if(this._closeCallback=s,this._isLoading||!this._isLoad)return;if(null!==this._lastError)return void this.onError(this._lastError);this.getProvider()===o&&this.isExpired?this._loadAd():this._ad.show()}onLoad(s){null!=this._loadCallback&&this._loadCallback()}onClose(s){null!=this._closeCallback&&this._closeCallback({isEnded:s.isEnded})}onError(s){null!=this._errorCallback&&this._errorCallback(s)}destroy(){this._ad.destroy()}_loadAd(){this._isLoad=!1,this._isLoading=!0,this._lastError=null,this._ad.load()}}class a extends e{constructor(s={}){super(plus.ad.createRewardedVideoAd(s),s)}}class d extends e{constructor(s={}){super(plus.ad.createFullScreenVideoAd(s),s)}}const r=new class{constructor(){this._ads={}}load(s,t,i){let o=this._fixOldOptions(s),{adpid:e}=o;e&&!this.isBusy(e)&&this.get(o).load(t,i)}show(t,i,o){let e=this._fixOldOptions(t),{adpid:a}=e;if(a){s.index.showLoading({mask:!0});var d=this.get(e);d.load((()=>{s.index.hideLoading(),d.show((s=>{i&&i(s)}))}),(t=>{s.index.hideLoading(),o&&o(t)}))}}isBusy(s){return this._ads[s]&&this._ads[s].isLoading}get(s){const{adpid:t,singleton:i=!0}=s;return!1===i&&this._ads[t]&&(this._ads[t].destroy(),delete this._ads[t]),delete s.singleton,this._ads[t]||(this._ads[t]=this._createAdInstance(s)),this._ads[t]}_createAdInstance(s){const o=s.adType||t;delete s.adType;let e=null;return o===t?e=new a(s):o===i&&(e=new d(s)),e}_fixOldOptions(s){return"string"==typeof s?{adpid:s}:s}};exports.AD=r;
|