| 
									
										
										
										
											2022-08-01 03:47:37 +00:00
										 |  |  | import moduleHelper from './module-helper'; | 
					
						
							|  |  |  | import response from './response'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const ads = {}; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export default { | 
					
						
							|  |  |  |   WXCreateBannerAd(conf) { | 
					
						
							|  |  |  |     conf = JSON.parse(conf); | 
					
						
							|  |  |  |     conf.style = JSON.parse(conf.styleRaw); | 
					
						
							|  |  |  |     const ad = wx.createBannerAd(conf); | 
					
						
							|  |  |  |     const key = new Date().getTime().toString(32) + Math.random().toString(32); | 
					
						
							|  |  |  |     ads[key] = ad; | 
					
						
							|  |  |  |     ad.onError((res) => { | 
					
						
							|  |  |  |       console.error(res); | 
					
						
							|  |  |  |       moduleHelper.send('ADOnErrorCallback', JSON.stringify({ | 
					
						
							|  |  |  |         callbackId: key, | 
					
						
							|  |  |  |         errMsg: res.errMsg, | 
					
						
							|  |  |  |         errCode: res.errCode || res.err_code, | 
					
						
							|  |  |  |       })); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     ad.onLoad(() => { | 
					
						
							|  |  |  |       moduleHelper.send('ADOnLoadCallback', JSON.stringify({ | 
					
						
							|  |  |  |         callbackId: key, | 
					
						
							|  |  |  |         errMsg: '', | 
					
						
							|  |  |  |       })); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     ad.onResize((res) => { | 
					
						
							|  |  |  |       moduleHelper.send('ADOnResizeCallback', JSON.stringify({ | 
					
						
							|  |  |  |         callbackId: key, | 
					
						
							|  |  |  |         errMsg: '', | 
					
						
							|  |  |  |         ...res, | 
					
						
							|  |  |  |       })); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     return key; | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   WXCreateFixedBottomMiddleBannerAd(adUnitId, adIntervals, height) { | 
					
						
							|  |  |  |     const info = wx.getSystemInfoSync(); | 
					
						
							|  |  |  |     const ad = wx.createBannerAd({ | 
					
						
							|  |  |  |       adUnitId, | 
					
						
							|  |  |  |       adIntervals, | 
					
						
							|  |  |  |       style: { | 
					
						
							|  |  |  |         left: 0, | 
					
						
							|  |  |  |         top: info.windowHeight - height, | 
					
						
							|  |  |  |         height, | 
					
						
							|  |  |  |         width: info.windowWeight, | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     const key = new Date().getTime().toString(32) + Math.random().toString(32); | 
					
						
							|  |  |  |     ads[key] = ad; | 
					
						
							|  |  |  |     ad.onError((res) => { | 
					
						
							|  |  |  |       console.error(res); | 
					
						
							|  |  |  |       moduleHelper.send('ADOnErrorCallback', JSON.stringify({ | 
					
						
							|  |  |  |         callbackId: key, | 
					
						
							|  |  |  |         errMsg: res.errMsg, | 
					
						
							|  |  |  |         errCode: res.errCode || res.err_code, | 
					
						
							|  |  |  |       })); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     ad.onLoad(() => { | 
					
						
							|  |  |  |       moduleHelper.send('ADOnLoadCallback', JSON.stringify({ | 
					
						
							|  |  |  |         callbackId: key, | 
					
						
							|  |  |  |         errMsg: '', | 
					
						
							|  |  |  |       })); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     const oldWidth = info.windowWidth; | 
					
						
							|  |  |  |     ad.onResize((res) => { | 
					
						
							|  |  |  |       if (Math.abs(res.height - height) > 1 || Math.abs(res.width - oldWidth) > 1) { | 
					
						
							|  |  |  |         ad.style.left = parseInt((info.windowWidth - res.width) / 2); | 
					
						
							|  |  |  |         ad.style.top = parseInt(info.windowHeight - res.height); | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       moduleHelper.send('ADOnResizeCallback', JSON.stringify({ | 
					
						
							|  |  |  |         callbackId: key, | 
					
						
							|  |  |  |         errMsg: '', | 
					
						
							|  |  |  |         ...res, | 
					
						
							|  |  |  |       })); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     return key; | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   WXCreateRewardedVideoAd(conf) { | 
					
						
							|  |  |  |     conf = JSON.parse(conf); | 
					
						
							|  |  |  |     const ad = wx.createRewardedVideoAd(conf); | 
					
						
							|  |  |  |     const key = new Date().getTime().toString(32) + Math.random().toString(32); | 
					
						
							|  |  |  |     ads[key] = ad; | 
					
						
							|  |  |  |     if (!conf.multiton) { // 单例模式要处理一下
 | 
					
						
							|  |  |  |       ad.offLoad(); | 
					
						
							|  |  |  |       ad.offError(); | 
					
						
							|  |  |  |       ad.offClose(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     ad.onError((res) => { | 
					
						
							|  |  |  |       console.error(res); | 
					
						
							|  |  |  |       moduleHelper.send('ADOnErrorCallback', JSON.stringify({ | 
					
						
							|  |  |  |         callbackId: key, | 
					
						
							|  |  |  |         errMsg: res.errMsg, | 
					
						
							|  |  |  |         errCode: res.errCode || res.err_code, | 
					
						
							|  |  |  |       })); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     ad.onLoad(() => { | 
					
						
							|  |  |  |       moduleHelper.send('ADOnLoadCallback', JSON.stringify({ | 
					
						
							|  |  |  |         callbackId: key, | 
					
						
							|  |  |  |         errMsg: '', | 
					
						
							|  |  |  |       })); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     ad.onClose((res) => { | 
					
						
							|  |  |  |       moduleHelper.send('ADOnVideoCloseCallback', JSON.stringify({ | 
					
						
							|  |  |  |         callbackId: key, | 
					
						
							|  |  |  |         errMsg: '', | 
					
						
							|  |  |  |         ...res, | 
					
						
							|  |  |  |       })); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     return key; | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   WXCreateInterstitialAd(conf) { | 
					
						
							|  |  |  |     conf = JSON.parse(conf); | 
					
						
							|  |  |  |     const ad = wx.createInterstitialAd(conf); | 
					
						
							|  |  |  |     const key = new Date().getTime().toString(32) + Math.random().toString(32); | 
					
						
							|  |  |  |     ads[key] = ad; | 
					
						
							|  |  |  |     ad.onError((res) => { | 
					
						
							|  |  |  |       console.error(res); | 
					
						
							|  |  |  |       moduleHelper.send('ADOnErrorCallback', JSON.stringify({ | 
					
						
							|  |  |  |         callbackId: key, | 
					
						
							|  |  |  |         errMsg: res.errMsg, | 
					
						
							|  |  |  |         errCode: res.errCode || res.err_code, | 
					
						
							|  |  |  |       })); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     ad.onLoad(() => { | 
					
						
							|  |  |  |       moduleHelper.send('ADOnLoadCallback', JSON.stringify({ | 
					
						
							|  |  |  |         callbackId: key, | 
					
						
							|  |  |  |         errMsg: '', | 
					
						
							|  |  |  |       })); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     ad.onClose(() => { | 
					
						
							|  |  |  |       moduleHelper.send('ADOnCloseCallback', JSON.stringify({ | 
					
						
							|  |  |  |         callbackId: key, | 
					
						
							|  |  |  |         errMsg: '', | 
					
						
							|  |  |  |       })); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     return key; | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   WXCreateGridAd(conf) { | 
					
						
							|  |  |  |     conf = JSON.parse(conf); | 
					
						
							|  |  |  |     conf.style = JSON.parse(conf.styleRaw); | 
					
						
							|  |  |  |     const ad = wx.createGridAd(conf); | 
					
						
							|  |  |  |     const key = new Date().getTime().toString(32) + Math.random().toString(32); | 
					
						
							|  |  |  |     ads[key] = ad; | 
					
						
							|  |  |  |     ad.onError((res) => { | 
					
						
							|  |  |  |       console.error(res); | 
					
						
							|  |  |  |       moduleHelper.send('ADOnErrorCallback', JSON.stringify({ | 
					
						
							|  |  |  |         callbackId: key, | 
					
						
							|  |  |  |         errMsg: res.errMsg, | 
					
						
							|  |  |  |         errCode: res.errCode || res.err_code, | 
					
						
							|  |  |  |       })); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     ad.onLoad(() => { | 
					
						
							|  |  |  |       moduleHelper.send('ADOnLoadCallback', JSON.stringify({ | 
					
						
							|  |  |  |         callbackId: key, | 
					
						
							|  |  |  |         errMsg: '', | 
					
						
							|  |  |  |       })); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     ad.onResize((res) => { | 
					
						
							|  |  |  |       moduleHelper.send('ADOnResizeCallback', JSON.stringify({ | 
					
						
							|  |  |  |         callbackId: key, | 
					
						
							|  |  |  |         errMsg: '', | 
					
						
							|  |  |  |         ...res, | 
					
						
							|  |  |  |       })); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     return key; | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   WXCreateCustomAd(conf) { | 
					
						
							|  |  |  |     conf = JSON.parse(conf); | 
					
						
							|  |  |  |     conf.style = JSON.parse(conf.styleRaw); | 
					
						
							|  |  |  |     const ad = wx.createCustomAd(conf); | 
					
						
							|  |  |  |     const key = new Date().getTime().toString(32) + Math.random().toString(32); | 
					
						
							|  |  |  |     ads[key] = ad; | 
					
						
							|  |  |  |     ad.onError((res) => { | 
					
						
							|  |  |  |       console.error(res); | 
					
						
							|  |  |  |       moduleHelper.send('ADOnErrorCallback', JSON.stringify({ | 
					
						
							|  |  |  |         callbackId: key, | 
					
						
							|  |  |  |         errMsg: res.errMsg, | 
					
						
							|  |  |  |         errCode: res.errCode || res.err_code, | 
					
						
							|  |  |  |       })); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     ad.onLoad(() => { | 
					
						
							|  |  |  |       moduleHelper.send('ADOnLoadCallback', JSON.stringify({ | 
					
						
							|  |  |  |         callbackId: key, | 
					
						
							|  |  |  |         errMsg: '', | 
					
						
							|  |  |  |       })); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     ad.onClose(() => { | 
					
						
							|  |  |  |       moduleHelper.send('ADOnCloseCallback', JSON.stringify({ | 
					
						
							|  |  |  |         callbackId: key, | 
					
						
							|  |  |  |         errMsg: '', | 
					
						
							|  |  |  |       })); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     return key; | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   WXADStyleChange(id, key, value) { | 
					
						
							|  |  |  |     if (!ads[id]) { | 
					
						
							|  |  |  |       return false; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     ads[id].style[key] = value; | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   WXShowAd(id, succ, fail) { | 
					
						
							|  |  |  |     if (!ads[id]) { | 
					
						
							|  |  |  |       return false; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     ads[id].show().then(() => { | 
					
						
							|  |  |  |       response.textFormat(succ, { | 
					
						
							|  |  |  |         errMsg: 'show:ok', | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     }).catch((e) => { | 
					
						
							|  |  |  |       response.textFormat(fail, { | 
					
						
							|  |  |  |         errMsg: e.errMsg || '', | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   WXShowAd2(id, branchId, branchDim, succ, fail) { | 
					
						
							|  |  |  |     if (!ads[id]) { | 
					
						
							|  |  |  |       return false; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     ads[id].show({ branchId, branchDim }).then(() => { | 
					
						
							|  |  |  |       response.textFormat(succ, { | 
					
						
							|  |  |  |         errMsg: 'show:ok', | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     }).catch((e) => { | 
					
						
							|  |  |  |       response.textFormat(fail, { | 
					
						
							|  |  |  |         errMsg: e.errMsg || '', | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   WXHideAd(id, succ, fail) { | 
					
						
							|  |  |  |     if (!ads[id]) { | 
					
						
							|  |  |  |       return false; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     if (succ || fail) { | 
					
						
							|  |  |  |       ads[id].hide().then((v) => { | 
					
						
							|  |  |  |         response.textFormat(succ, { | 
					
						
							|  |  |  |           errMsg: 'hide:ok', | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |       }).catch((e) => { | 
					
						
							|  |  |  |         response.textFormat(fail, { | 
					
						
							|  |  |  |           errMsg: e.errMsg || '', | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     } else { | 
					
						
							|  |  |  |       ads[id].hide(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   WXADDestroy(id) { | 
					
						
							|  |  |  |     if (!ads[id]) { | 
					
						
							|  |  |  |       return false; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     ads[id].destroy(); | 
					
						
							|  |  |  |     delete ads[id]; | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   WXADLoad(id, succ, fail) { | 
					
						
							|  |  |  |     if (!ads[id]) { | 
					
						
							|  |  |  |       return false; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     ads[id].load().then(() => { | 
					
						
							|  |  |  |       response.textFormat(succ, {}); | 
					
						
							|  |  |  |     }).catch((res) => { | 
					
						
							|  |  |  |       moduleHelper.send('ADLoadErrorCallback', JSON.stringify({ | 
					
						
							|  |  |  |         callbackId: fail, | 
					
						
							|  |  |  |         ...res, | 
					
						
							|  |  |  |       })); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   WXReportShareBehavior(id, conf) { | 
					
						
							|  |  |  |     if (!ads[id]) { | 
					
						
							|  |  |  |       return '{}'; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     return JSON.stringify(ads[id].reportShareBehavior(JSON.parse(conf))); | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  | }; |