Android WebView按钮可激活奖励广告

所以我找到了一些代码( 如何从android webview JavascriptInterface调用admob插页式广告 ),允许在webview页面上使用javascript在应用程序中激活。

现在我遇到的问题是当按下按钮时,它会向广告未加载广告。 为什么不加载广告?

以下是MainActivity.java中使用的完整代码

import android.content.Context; import android.content.DialogInterface; import android.graphics.Bitmap; import android.graphics.Color; import android.os.Bundle; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.view.KeyEvent; import android.webkit.JavascriptInterface; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Toast; 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; public class MainActivity extends AppCompatActivity { public InterstitialAd mInterstitialAd; WebView ProfOak; String URL; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); AdView mAdView = findViewById(R.id.adView); AdRequest adRequest = new AdRequest.Builder().build(); mAdView.loadAd(adRequest); URL = "http://url-here"; ProfOak = findViewById(R.id.ProfOak); ProfOak.getSettings().setJavaScriptEnabled(true); ProfOak.getSettings().setDomStorageEnabled(true); ProfOak.getSettings().setUseWideViewPort(true); ProfOak.setWebChromeClient(new WebChromeClient()); ProfOak.addJavascriptInterface(new WebAppInterface(this), "Android"); ProfOak.setVerticalScrollBarEnabled(false); ProfOak.setWebChromeClient(new WebChromeClient()); ProfOak.setBackgroundColor(Color.TRANSPARENT); ProfOak.loadUrl(URL); ProfOak.setWebViewClient(new WebViewClient() { public void onReceivedError(WebView ProfOak, int errorCode, String description, String failingUrl) { try { ProfOak.stopLoading(); } catch (Exception e) { } if (ProfOak.canGoBack()) { ProfOak.goBack(); } ProfOak.loadUrl("about:blank"); AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create(); alertDialog.setTitle("Connection Required"); alertDialog.setMessage("This app requires an active Internet Connection to communicate with the Database."); alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "Try Again", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { finish(); startActivity(getIntent()); } }); alertDialog.show(); super.onReceivedError(ProfOak, errorCode, description, failingUrl); } }); mInterstitialAd = new InterstitialAd(this); mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/5224354917"); 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(); } } public class myWebClient extends WebViewClient { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } } //Controlling navigation @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) { switch (keyCode) { case KeyEvent.KEYCODE_BACK: if (ProfOak.canGoBack()) { ProfOak.goBack(); } else { finish(); } return true; } } return super.onKeyDown(keyCode, event); } } 

这就是我在webview URL中的内容

   function myFunction() { Android.showAdFromJs(); };  

您似乎正在使用广告单元ID来获得奖励video,即ca-app-pub-3940256099942544/5224354917。 对于非页内广告,测试广告单元ID为ca-app-pub-3940256099942544/1033173712 。 请参阅https://developers.google.com/admob/android/test-ads