最近在公司開發遊戲,使用cocos creator作微信小遊戲,遇到一個很噁心的問題,如圖:算法
如圖所示,微信的廣告位被iphonex的底部bar給彈出了一點位置,沒有靠在底部。小程序
在這裏不得不吐槽一下微信的小程序接口還有個噁心的地方,那就是他的廣告style沒有bottom,right屬性,使得置底部必須使用算法計算。也就是winsize.height-廣告高度(realheight),居中是winsize.width-廣告寬度/2。微信
而就算如此,在Android和iphone普通手機上是沒有適配問題的,徹底居中靠底,而一到高貴的iPhonex上,就會出現廣告位一下子靠底部,一會又被底部黑色bar頂出一點位置,要解決這個蛋疼的問題,以下解決:iphone
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; } }
注意幾點:this