feat: add builder configuration file
feat: add cocos-service configuration file feat: add device configuration file feat: add engine configuration file feat: add information configuration file feat: add program configuration file feat: add project configuration file feat: add TypeScript configuration file
This commit is contained in:
238
assets/script/ads/AdManager_WX.ts
Normal file
238
assets/script/ads/AdManager_WX.ts
Normal file
@@ -0,0 +1,238 @@
|
||||
import { Asset, resources } from "cc";
|
||||
import { PlatformManager, releaseType } from "../manager/PlatformManager";
|
||||
|
||||
export class AdManager_WX {
|
||||
/** 单例模式 */
|
||||
private static _instance: AdManager_WX = new AdManager_WX();
|
||||
private constructor() { }
|
||||
public static get _ins() {
|
||||
return this._instance;
|
||||
}
|
||||
/** appID */
|
||||
app_id: string = "wx2c68756779fd1535";
|
||||
/** bannerID */
|
||||
ad_banner_id: string = "adunit-64d55f82495fec1d";
|
||||
/** 插屏ID */
|
||||
ad_inter_id: string = "adunit-3e889a9a21c90ec2";
|
||||
/** 激励ID */
|
||||
ad_video_id: string = "adunit-fc615ecff3915673";
|
||||
|
||||
ad_banner: any = null; //banner广告;
|
||||
ad_video: any = null; //视频广告;
|
||||
|
||||
gameName:string = "魔方拆拆乐"; //游戏名字
|
||||
|
||||
videoBack: () => void | null; //视频广告完成回调
|
||||
errorBack: (isOut: boolean) => void | null; //视频广告失败回调
|
||||
|
||||
/** 加载或者初始化所有广告 */
|
||||
loadAllAd() {
|
||||
if (PlatformManager.releaseType != releaseType.applet_wechat) { return; }
|
||||
|
||||
// this.initBanner();
|
||||
this.initVideoAd();
|
||||
this.addShareMenu();
|
||||
};
|
||||
/** 初始化加载 视频广告 */
|
||||
private initVideoAd() {
|
||||
let self = this;
|
||||
|
||||
this.ad_video = wx.createRewardedVideoAd({ adUnitId: self.ad_video_id })
|
||||
this.ad_video.load().then(() => {
|
||||
console.log("视频广告加载完成!");
|
||||
}).catch((err: any) => {
|
||||
console.log("视频加载失败:" + err.errMsg)
|
||||
});
|
||||
this.ad_video.onError((err: any) => {
|
||||
this.errorVideo();
|
||||
console.log("视频出错:" + err);
|
||||
});
|
||||
this.ad_video.onClose((res: any) => {
|
||||
// 用户点击了【关闭广告】按钮
|
||||
// 小于 2.1.0 的基础库版本,res 是一个 undefined
|
||||
if (res && res.isEnded || res === undefined) {
|
||||
console.log("正常播放结束,可以下发游戏奖励");
|
||||
this.finishVideo();
|
||||
} else {
|
||||
this.errorVideo(true);
|
||||
console.log("播放中途退出,不下发游戏奖励");
|
||||
}
|
||||
});
|
||||
};
|
||||
/** 初始化加载 banner */
|
||||
private initBanner() {
|
||||
var self = this;
|
||||
let bannerAd = wx.createBannerAd({
|
||||
adUnitId: self.ad_banner_id,
|
||||
style: { left: 0, top: 0, width: 720 }
|
||||
}
|
||||
)
|
||||
bannerAd.onResize((res: any) => {
|
||||
var phone = wx.getSystemInfoSync();
|
||||
var w = phone.screenWidth / 2;
|
||||
var h = phone.screenHeight;
|
||||
bannerAd.style.left = w - bannerAd.style.realWidth / 2 + 0.1;
|
||||
bannerAd.style.top = h - bannerAd.style.realHeight + 0.1;
|
||||
bannerAd.style.width = phone.screenWidth * 0.8;
|
||||
console.log("bannerAd加载成功");
|
||||
})
|
||||
bannerAd.onError((err: any) => {
|
||||
console.log(err)
|
||||
});
|
||||
this.ad_banner = bannerAd;
|
||||
};
|
||||
/** 显示Banner广告 */
|
||||
public showBanner() {
|
||||
if (PlatformManager.releaseType != releaseType.applet_wechat) { return; }
|
||||
if (!this.ad_banner) {
|
||||
this.initBanner();
|
||||
// return;
|
||||
};
|
||||
this.ad_banner.show();
|
||||
};
|
||||
/** 隐藏Banner广告 */
|
||||
public hideBanner() {
|
||||
if (PlatformManager.releaseType != releaseType.applet_wechat) { return; }
|
||||
if (!this.ad_banner) { return; }
|
||||
this.ad_banner.hide();
|
||||
};
|
||||
/** 播放插屏广告 */
|
||||
public showIntersAd() {
|
||||
// return;
|
||||
if (PlatformManager.releaseType != releaseType.applet_wechat) { return; }
|
||||
// 定义插屏广告
|
||||
let interstitialAd = null;
|
||||
interstitialAd = wx.createInterstitialAd({
|
||||
adUnitId: this.ad_inter_id
|
||||
});
|
||||
interstitialAd.show().catch((err: any) => {
|
||||
console.error(err)
|
||||
});
|
||||
console.log("showIntersAd");
|
||||
}
|
||||
/** 播放视频广告 成功回调 失败回调 */
|
||||
public showVideoAd(finishBack?: () => void, errorBack?: () => void) {
|
||||
if (PlatformManager.releaseType != releaseType.applet_wechat) { return; }
|
||||
// wx.showToast({
|
||||
// title: '暂无视频广告!',
|
||||
// icon: 'none',
|
||||
// duration: 1500//持续的时间
|
||||
// })
|
||||
// return;
|
||||
this.videoBack = null;
|
||||
this.errorBack = null;
|
||||
if (finishBack) {
|
||||
this.videoBack = finishBack;
|
||||
} if (errorBack) {
|
||||
this.errorBack = errorBack;
|
||||
}
|
||||
|
||||
if (!this.ad_video) {
|
||||
this.initVideoAd();
|
||||
}
|
||||
var self = this;
|
||||
this.ad_video.show().then(() => {
|
||||
console.log("广告显示成功");
|
||||
}).catch((err: any) => {
|
||||
this.errorVideo();
|
||||
console.log("广告组件出现问题", err);
|
||||
// 再手动加载一次
|
||||
this.ad_video.load().then(() => {
|
||||
console.log("手动加载成功");
|
||||
this.ad_video.show(); // 加载成功后需要再显示广告
|
||||
});
|
||||
});
|
||||
}
|
||||
/** 视频播放完成 */
|
||||
finishVideo() {
|
||||
if (this.videoBack) {
|
||||
this.videoBack();
|
||||
}
|
||||
this.videoBack = null;
|
||||
this.errorBack = null;
|
||||
}
|
||||
/** 视频播放失败 isOut 是否中途退出*/
|
||||
errorVideo(isOut: boolean = false) {
|
||||
if (this.errorBack) {
|
||||
this.errorBack(isOut);
|
||||
}
|
||||
this.videoBack = null;
|
||||
this.errorBack = null;
|
||||
};
|
||||
|
||||
/** 分享视频 shareTitle 分享内容 imgUrl 分享图路径 resource下的 */
|
||||
shareFriends(shareTitle?: string , imgUrl:string = "share") {
|
||||
if (PlatformManager.releaseType != releaseType.applet_wechat) { return; }
|
||||
var self = this;
|
||||
// wx.showShareMenu();
|
||||
|
||||
shareTitle = shareTitle || '快来大战25个回合~~';
|
||||
resources.load(imgUrl, Asset , ( err:Error , asset: Asset ) => {
|
||||
wx.shareAppMessage({
|
||||
title: shareTitle ,
|
||||
imageUrl: asset.nativeUrl ,
|
||||
success(res:any) {
|
||||
console.log("分享成功:", res);
|
||||
return;
|
||||
},
|
||||
fail(res:any) {
|
||||
// 转发失败
|
||||
wx.showToast({
|
||||
title: '分享失败',
|
||||
icon: 'none',
|
||||
duration: 1500//持续的时间
|
||||
})
|
||||
return;
|
||||
}
|
||||
});
|
||||
} );
|
||||
};
|
||||
/** 添加右上角三个点分享 */
|
||||
addShareMenu(shareTitle?: string ,imgUrl:string = "share") {
|
||||
if (PlatformManager.releaseType != releaseType.applet_wechat) { return; }
|
||||
|
||||
shareTitle = shareTitle || ""
|
||||
wx.showShareMenu( {
|
||||
withShareTicket: true,
|
||||
menus: ['shareAppMessage', 'shareTimeline'],
|
||||
} );
|
||||
console.log("添加右上角三个点分享");
|
||||
resources.load( imgUrl , Asset , (err:Error , asset: Asset) => {
|
||||
console.log(asset.nativeUrl);
|
||||
wx.onShareAppMessage(() => {
|
||||
return {
|
||||
title: this.gameName,
|
||||
imageUrl: asset.nativeUrl // 图片 URL
|
||||
}
|
||||
});
|
||||
} );
|
||||
};
|
||||
/** 跳转其他更多游戏 */
|
||||
toMoreGame() {
|
||||
if (PlatformManager.releaseType != releaseType.applet_wechat) { return; }
|
||||
wx.navigateToMiniProgram({
|
||||
appId: 'wxda02fde13d108205', //其他游戏的appid
|
||||
path: 'page/index/index?id=123',
|
||||
extraData: {
|
||||
foo: 'bar'
|
||||
},
|
||||
envVersion: 'develop',
|
||||
success(res: any) {
|
||||
}
|
||||
});
|
||||
};
|
||||
/** 震动 */
|
||||
vibrate(){
|
||||
if (PlatformManager.releaseType != releaseType.applet_wechat) { return; }
|
||||
// console.log("vibrateShort")
|
||||
wx.vibrateShort({
|
||||
type:'medium'
|
||||
})
|
||||
}
|
||||
/** 添加桌面功能 */
|
||||
addTable() {
|
||||
}
|
||||
/** 是否已经添加过桌面了 */
|
||||
isAddTable() {
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user