javascript android webview admob interstitial

Cómo llamar a admob Anuncio intersticial desde la vista web de Android JavaScriptInterface



webview interstitial (1)

Solución para el problema anterior
Importe todos los paquetes requeridos.

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

llamando desde javascript

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

Me enfrentaba un problema al llamar a Android intersticial Admob desde la vista web. No pude obtener una solución adecuada. Finalmente descubrí la solución para llamar al intersticial para javascript. Mira la respuesta a continuación.