Android 如何在webview应用程序上显示间隙广告?

Android 如何在webview应用程序上显示间隙广告?,android,android-studio,webview,admob,android-webview,Android,Android Studio,Webview,Admob,Android Webview,我想在webview应用程序上显示间隙广告,并使广告在打开页面(文章)后立即打开,正如admob策略告诉我的那样,使广告出现在正常的过渡点 你能告诉我怎么做吗 我还想知道如何控制广告外观,因为我不想让用户每次打开链接时都显示广告?如果您使用的是Cordova/Phonegap/Ionic这样的框架,那么最好使用插件: 否则,您可以尝试获取插件并删除cordova依赖项,然后将其重构为可使用javascript挂钩调用,但这将是一件痛苦的事情 如果您使用的是Cordova/Phonegap/Ion

我想在webview应用程序上显示间隙广告,并使广告在打开页面(文章)后立即打开,正如admob策略告诉我的那样,使广告出现在正常的过渡点

你能告诉我怎么做吗


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

如果您使用的是Cordova/Phonegap/Ionic这样的框架,那么最好使用插件:


否则,您可以尝试获取插件并删除cordova依赖项,然后将其重构为可使用javascript挂钩调用,但这将是一件痛苦的事情

如果您使用的是Cordova/Phonegap/Ionic这样的框架,那么最好使用插件:

否则,您可以尝试获取插件并删除cordova依赖项,然后将其重构为可使用javascript挂钩调用,但这将是一件痛苦的事情

我建议你去看看 我已经给出了从android webview显示admob Interstitual的解决方案

例如:

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();
});
我建议你去参观 我已经给出了从android webview显示admob Interstitual的解决方案

例如:

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();
});