如题,在安卓设备上如代码片段所示,页面 onShow 的生命周期中展示插屏广告,会导致当前小程序页面卡死无法继续操作。
测试中发现插屏广告的生命周期大致为以下几种情况,不一定准确:
- wx.createInterstitialAd => InterstitialAd.onError,插屏广告加载失败;
- wx.createInterstitialAd => InterstitialAd.onLoad => InterstitialAd.show => 插屏广告展示成功 => InterstitialAd.onClose(自动调用 InterstitialAd.load) => InterstitialAd.onLoad => 下次调用 InterstitialAd.show;
- wx.createInterstitialAd => InterstitialAd.onLoad => InterstitialAd.show => 插屏广告展示失败 => 下次调用 InterstitialAd.show;
代码片段中,对插屏广告的生命周期进行了输出,测试了触发小程序页面卡死情况下的插屏广告生命周期回调情况。
正常未触发小程序页面卡死的插屏广告生命周期如下图:
非正常而触发小程序页面卡死的插屏广告生命周期如下图:
对比发现触发小程序页面卡死的插屏广告生命周期中,比正常插屏广告生命周期在调用 InterstitialAd.show 展示广告前,触发了一次 InterstitialAd.onClose 回调,紧接着 InterstitialAd.show 成功展示广告,此时展示的插屏广告无法关闭,页面无法继续操作。
代码片段中对 InterstitialAd.show 使用 setTimeout 包裹,延迟展示广告,则不会触发小程序页面卡死(即上图的正常生命周期情况),去掉 setTimeout 将出现小程序页面卡死的情况(上图非正常生命周期情况)。
PS:测试时使用的 AppId 为 wx11c19d093666697b
2023年了, 不给解决么。 我真服了
这个官方可以解决下吗?用户体验非常差,界面上什么都操作不了
同样的问题,页面内什么都无法操作,只有右上角的操作按钮可操作