uni-app 集成基础广告后,在 iOS 上点开广告无法返回,一直点返回按钮还有几率崩溃

uni-app 集成基础广告后,在 iOS 上点开广告无法返回,一直点返回按钮还有几率崩溃

1 回复

更多关于uni-app 集成基础广告后,在 iOS 上点开广告无法返回,一直点返回按钮还有几率崩溃的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在uni-app中集成广告时,iOS端点击广告后无法返回且频繁触发返回按钮导致崩溃,通常与广告SDK的事件处理和页面生命周期冲突有关。以下是常见原因及解决方案:

  1. 广告页未正确关闭
    部分广告SDK(如穿山甲、优量汇)在iOS端会以模态形式全屏展示,需监听广告关闭事件并手动触发页面返回。
    示例代码:

    // 在广告展示成功的回调中监听关闭事件
    plus.ad.showFullScreenVideoAd({
      success: (res) => {
        // 广告关闭时强制返回上一页
        uni.navigateBack({ delta: 1 });
      }
    });
    
  2. 返回事件重复触发
    连续点击返回按钮可能导致多次执行navigateBack,需通过状态锁防止重复调用:

    let isReturning = false;
    function handleBack() {
      if (isReturning) return;
      isReturning = true;
      uni.navigateBack({ delta: 1 });
    }
    
  3. 广告SDK与页面栈冲突
    iOS的广告页可能独立于Webview栈,需在onHide生命周期中处理:

    onHide() {
      // 检测到广告页关闭时同步页面状态
      if (this.adDisplayed) {
        this.adDisplayed = false;
      }
    }
回到顶部