收藏
回答

插屏广告导致页面卡死

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug InterstitialAd 微信安卓客户端 8.0.11.1980 2.19.4

如题,在安卓设备如代码片段所示,页面 onShow 的生命周期中展示插屏广告,会导致当前小程序页面卡死无法继续操作

测试中发现插屏广告的生命周期大致为以下几种情况,不一定准确

  1. wx.createInterstitialAd => InterstitialAd.onError,插屏广告加载失败
  2. wx.createInterstitialAd => InterstitialAd.onLoad => InterstitialAd.show => 插屏广告展示成功 => InterstitialAd.onClose(自动调用 InterstitialAd.load) => InterstitialAd.onLoad => 下次调用 InterstitialAd.show
  3. wx.createInterstitialAd => InterstitialAd.onLoad => InterstitialAd.show => 插屏广告展示失败 => 下次调用 InterstitialAd.show

代码片段中,对插屏广告的生命周期进行了输出,测试了触发小程序页面卡死情况下的插屏广告生命周期回调情况。

正常未触发小程序页面卡死的插屏广告生命周期如下图:

非正常而触发小程序页面卡死的插屏广告生命周期如下图:

对比发现触发小程序页面卡死的插屏广告生命周期中,比正常插屏广告生命周期在调用 InterstitialAd.show 展示广告前,触发了一次 InterstitialAd.onClose 回调,紧接着 InterstitialAd.show 成功展示广告,此时展示的插屏广告无法关闭,页面无法继续操作。

代码片段中对 InterstitialAd.show 使用 setTimeout 包裹,延迟展示广告,则不会触发小程序页面卡死(即上图的正常生命周期情况),去掉 setTimeout 将出现小程序页面卡死的情况(上图非正常生命周期情况)。

PS:测试时使用的 AppId 为 wx11c19d093666697b

回答关注问题邀请回答
收藏

3 个回答

  • 发飙的蜗牛
    发飙的蜗牛
    2023-07-07

    2023年了, 不给解决么。 我真服了

    2023-07-07
    有用
    回复
  • Stahsf
    Stahsf
    2021-10-08

    这个官方可以解决下吗?用户体验非常差,界面上什么都操作不了

    2021-10-08
    有用
    回复
  • 清风亭
    清风亭
    2021-09-13

    同样的问题,页面内什么都无法操作,只有右上角的操作按钮可操作

    2021-09-13
    有用
    回复
登录 后发表内容