You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安卓WebView应用如何限制返回键触发插屏广告的展示频次

安卓WebView返回键插屏广告按频次展示解决方案

实现思路

核心是在Activity中新增返回操作计数变量,每次触发返回逻辑时先累计计数,计数达到预先设定的阈值时再展示插屏广告,未达阈值则直接执行原有返回逻辑,既避免每次返回都弹广告的问题,也能控制广告展示频次。

代码修改步骤

你可以直接在你的MainActivity.java中按以下步骤修改:

  1. 先在Activity的全局成员变量区新增两个配置变量
// 自定义广告展示阈值,示例为每3次返回操作展示1次广告,可按需调整数值
private static final int AD_SHOW_THRESHOLD = 3;
// 记录返回操作的累计次数
private int backPressCount = 0;
  1. 修改onBackPressed返回键逻辑,替换你原有调整后的返回代码即可
@Override
public void onBackPressed() {
    // 优先处理WebView网页层级的返回,若不需要统计网页内返回次数可保留此逻辑
    if (webView.canGoBack()) {
        webView.goBack();
        // 如果需要把网页内返回也计入统计,可以把下一行的backPressCount++移到这里
        return;
    }
    // 累计返回次数
    backPressCount++;
    if (backPressCount >= AD_SHOW_THRESHOLD) {
        // 这里放置你原有项目的插屏广告展示代码
        if (interstitialAd != null && interstitialAd.isLoaded()) {
            interstitialAd.show();
            // 展示广告后重置计数
            backPressCount = 0;
        } else {
            // 广告加载失败兜底,直接执行返回逻辑
            super.onBackPressed();
        }
    } else {
        // 未达展示阈值,直接执行返回逻辑
        super.onBackPressed();
    }
}
  1. 补充广告关闭回调逻辑,避免用户关闭广告后无后续响应
// 你项目中原有的插屏广告关闭监听回调
@Override
public void onInterstitialAdDismissed() {
    // 广告关闭后执行原有返回操作
    super.onBackPressed();
}

注意事项

  • 阈值AD_SHOW_THRESHOLD可根据业务需求调整,注意不要设置过低违反Google Play广告政策
  • 必须保留广告加载失败的兜底逻辑,避免广告没加载成功时卡住用户的返回操作
  • 如果需要区分不同页面的广告展示规则,可以新增变量判断当前WebView加载的URL,对应调整阈值即可

内容的提问来源于stack exchange,提问作者Deep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:06:00