【问题标题】:How to show Interstitial ad on a webview app?如何在 webview 应用上显示插页式广告?
【发布时间】:2016-09-15 01:35:18
【问题描述】:

我想在 webview 应用上展示插页式广告,并让广告在打开页面(文章)后立即打开,因为 admob 政策告诉我要让广告出现在正常的过渡点。

你能告诉我怎么做吗?

我还想知道如何控制广告的外观,因为我不希望每次用户打开链接时都显示广告?

【问题讨论】:

    标签: android android-studio webview admob android-webview


    【解决方案1】:

    如果您使用像 Cordova/Phonegap/Ionic 这样的框架,您最好的机会是使用插件:https://github.com/appfeel/admob-google-cordova/

    否则您可以尝试获取插件并删除co​​rdova依赖项,并将其重构为可使用您的javascript挂钩调用,但这会很痛苦!

    【讨论】:

      【解决方案2】:

      我建议您访问How to call admob Interstitial ad from android webview JavascriptInterface 我已经给出了从 android webview 显示 admob interstitial 的解决方案。

      例子:

      public class MainActivity extends AppCompatActivity {
          WebView myWevView;
          public InterstitialAd mInterstitialAd;
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              getSupportActionBar().hide();
              setContentView(R.layout.activity_main);
      
              myWevView =(WebView)findViewById(R.id.myWevView);
              WebSettings ws= myWevView.getSettings();
              ws.setJavaScriptEnabled(true);
              ws.setDomStorageEnabled(true);
              myWevView.getSettings().setUseWideViewPort(true);
              myWevView.addJavascriptInterface(new WebAppInterface(this), "Android");
              myWevView.setWebViewClient(new WebViewClient());
              myWevView.setWebChromeClient(new WebChromeClient());
              myWevView.getSettings().setBuiltInZoomControls(true);
              myWevView.loadUrl("file:///android_asset/index.html");
              mInterstitialAd = new InterstitialAd(this);
              mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
              mInterstitialAd.loadAd(new AdRequest.Builder().build());
              mInterstitialAd.setAdListener(new AdListener(){
              @Override
                  public void onAdLoaded(){
      
                  }
                  @Override
                  public void onAdClosed() {
                      // Load the next interstitial.
                       mInterstitialAd.loadAd(new AdRequest.Builder().build());
                  }
              });
      
            }
      
      
      
      
         public void displayLoadedAd(){
             runOnUiThread(new Runnable() {
                 public void run() {
                     if (mInterstitialAd.isLoaded()) {
                         mInterstitialAd.show();
                         mInterstitialAd.loadAd(new AdRequest.Builder().build());
                     }
                     else
                         Toast.makeText(getApplicationContext(), "Ad not loded", Toast.LENGTH_SHORT).show();
                 }
      
             });
      
      
         }
      
      
          public class WebAppInterface {
              Context mContext;
              /** Instantiate the interface and set the context */
              WebAppInterface(Context c) {
                  mContext = c;
              }
              @JavascriptInterface
              public void showAdFromJs(){
      
                  Toast.makeText(mContext, "Loading Ad", Toast.LENGTH_SHORT).show();
                    displayLoadedAd();
              }
          }
          //Controlling navigation
          @Override
          public boolean onKeyDown(int keyCode, KeyEvent event) {
              if (event.getAction() == KeyEvent.ACTION_DOWN) {
                  switch (keyCode) {
                      case KeyEvent.KEYCODE_BACK:
                          if (myWevView.canGoBack()) {
                              myWevView.goBack();
                          }
                          else {
                              finish();
                          }
                          return true;
                  }
              }
              return super.onKeyDown(keyCode, event);
          }
      }
      

      从 javascript 调用

      $("#btn1").click(function(){
         Android.showAdFromJs();
      });
      

      【讨论】:

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