疑似基础库2.7.0的bug,小程序banner广告组件显示异常(再复现)
发布于 6 年前 作者 yugang 2692 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)和预期表现

在本人之前发过的帖子里有叙述:https://developers.weixin.qq.com/community/develop/doc/000ae8c801c8c0c84288404b651000

  • 复现路径

这次的复现场景较为特殊,需要用户关闭一次广告后再进入页面,且同样在开发者工具上复现。

经检查,发现是wx.createSelectorQuery返回ad的syle时出现问题

基础库在2.6.6时,广告无论是否关闭过,返回的style都是width:300px,height:86px

而基础库一旦高于2.7.0,只要广告关闭过,返回的style就会变成width:100%,height:auto

导致广告组件显示异常

  • 提供一个最简复现 Demo
const query = wepy.createSelectorQuery()
query.select('#' + mining.wxAd.id).fields({
    computedStyle: ['width', 'height']
})
query.exec(function(res) {
    if (res[0]) {
        let { width, height } = res[0]
    }
}

总结一下就是:

基础库高于2.6.6时,wx.createSelectorQuery返回ad组件的style在特殊场景下(广告关闭后刷新页面再显示)不正常

正常情况下应返回正确的宽高值300px和86px,而不是100%和auto

1 回复

你现在的方式是使用ad的宽度来计算外层view的缩放吧?我们不建议这样使用

正确使用方式应该是下面这样:ad默认宽度是100%,开发者可以直接在ad标签外层包一个view,通过设置view的宽度来调整ad的宽度,view的宽度不能设置小于300px,因为ad发现外层宽度小于300px时,会自动把自身设置成300px,具体可参考:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/ad/banner-ad.html

回到顶部