【问题标题】:How to show Interstitial ad in webView app?如何在 webView 应用中显示插页式广告?
【发布时间】:2017-05-30 05:48:47
【问题描述】:

我想在我的 webview android 应用上展示插页式广告,但我无法实现它。

  • 我有一个完全在线的 webview 应用程序,没有离线页面或任何按钮或菜单。

  • 我不想在启动或关闭应用时展示插页式广告。

  • 应在用户使用该 webview 应用浏览我的网站时展示广告。
  • 我想在 x 分钟后使用插页式广告,但我从 herehere 了解到 x 分钟后插页式广告不是一个好主意。
  • 那么我该如何在我的应用上展示插页式广告,我没有任何按钮或菜单,只有一个网站可供浏览。
  • 请建议我如何在我的 webview 应用上使用插页式广告。
  • 我尝试并成功实施了 BANNER 广告。在stackoverflow问答和Google(代码如下)的帮助下,但未能以任何方式实施插页式广告
  • 我是这个领域的新手,所以请给我建议详细的过程意味着在哪里放置代码等。

Activity_main.xml

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.xxxx.yyyyy.MainActivity"
    android:layout_gravity="center"
    android:id="@+id/fl">

    <WebView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/wv"/>
    <ProgressBar
        android:id="@+id/progressBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />


    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        ads:adSize="BANNER"
        ads:adUnitId="ca-app-pub-xxxxx/xxxxxx">
    </com.google.android.gms.ads.AdView>
</RelativeLayout>

Mainactivity java

import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.InterstitialAd;
import com.google.android.gms.ads.MobileAds;

MobileAds.initialize(this, "xxxxxx~xxxxxx");
        AdView adView = (AdView)findViewById(R.id.adView);

        AdRequest adRequest = new AdRequest.Builder()
                .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
                .addTestDevice("xxxxxxx")
                .build();
        adView.loadAd(adRequest);

使用 firebase (build.gradle)

compile 'com.google.firebase:firebase-ads:10.2.6'

【问题讨论】:

标签: android webview admob interstitial


【解决方案1】:

您最好的选择是为您的 webview 设置一个 webview 客户端,并在用户使用 shouldOverrideUrlLoading 方法打开某些特定 URL 时加载广告

 mWebView.setWebViewClient(new WebViewClient() {

   @Override
 public boolean shouldOverrideUrlLoading(WebView view, String urlNewString)     {

 //urlNewString is  url for loading Ad then load Ad

return false;
}

@Override
public void onPageStarted(WebView view, String url) {

    }

});

【讨论】:

    【解决方案2】:

    是的,您可以在使用 Android WebView 中的 JavascriptInterface 单击按钮时从您的网络应用中显示插页式广告。

    1. 首先将 addJavascriptInterface 添加到您的 web 视图中。
    2. 为 JavascriptInterface 创建一个类
    3. 在您的 Acitvity 中创建一个显示广告的方法,例如“showAd()”
    4. 在您的 javascriptInterface 类中创建一个方法并调用您的 showAd() 来展示广告。

    参考见How to call admob Interstitial ad from android webview JavascriptInterface

    【讨论】:

      【解决方案3】:

      在显示 webview 的 Activity 上使用 android 生命周期:-)。当你最小化你的应用程序时,插页式广告将加载,当应用程序打开时,广告将被显示。下面是我在我的应用程序中以这种方式显示广告的示例......希望这会有所帮助

      @Override
      protected void onDestroy() {
          super.onDestroy();
      
      
      }
      
      @Override
      protected void onStop() {
          super.onStop();
        loadads(); 
      
      }
      
      @Override
      protected void onResume() {
          super.onResume();
         showads();   
      }
      
      @Override
      protected void onPause() {
          super.onPause();
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-10
        • 1970-01-01
        相关资源
        最近更新 更多