微信小游戏广告位iphonex底部适配问题

最近在公司开发游戏,使用cocos creator做微信小游戏,遇到一个很恶心的问题,如图:

这里写图片描述

如图所示,微信的广告位被iphonex的底部bar给弹出了一点位置,没有靠在底部。

在这里不得不吐槽一下微信的小程序接口还有个恶心的地方,那就是他的广告style没有bottom,right属性,使得置底部必须使用算法计算。也就是winsize.height-广告高度(realheight),居中是winsize.width-广告宽度/2。

这里写图片描述

而就算如此,在Android和iphone普通手机上是没有适配问题的,完全居中靠底,而一到高贵的iPhonex上,就会出现广告位一会儿靠底部,一会又被底部黑色bar顶出一点位置,要解决这个蛋疼的问题,如下解决:

getWXFunction(name) {
	if(typeof(wx) == 'undefined' || wx == null) {
		return null;
	}
	return wx[name];
}
showBannerAd() {
	var wxFunc = this.getWXFunction('createBannerAd');
	if(typeof(wxFunc) != 'undefined' && wxFunc != null) {
		var phone = wx.getSystemInfoSync();
		console.log(phone);
		var w = phone.screenWidth / 2;
		var h = phone.screenHeight;
		let bannerAd = wxFunc({
			adUnitId: 'adunit-549b2e8b53ad8e21',
			style: {
				width: 300,
				//height:40,
				top: 0,
				left: 0
			}
		});
		bannerAd.onResize(function() {
			bannerAd.style.left = w - bannerAd.style.realWidth / 2 + 0.1;
			bannerAd.style.top = h - bannerAd.style.realHeight + 0.1;
			console.log(bannerAd);
		})
		bannerAd.show();
		return bannerAd;
	} else {
		return;
	}
}

注意几点:

  1. 创建banner的默认位置不需要修改,反正也没用
  2. 在onresize中重置style来改变位置
  3. 使用realwidth和realheight作为相对位移(这两项必须是在banner已经创建完成的情况下)
  4. left和top都加上0.1,不加就会被iphonex该死的底部bar给顶上去,而且时而顶上去,时而又是正常,至今不知道为什么
  5. onresize之后再使用show方法将广告banner给show出来
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

devilyouwei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值