2016-09-15 7 views
0

webviewアプリにインタースティシャル広告を表示し、広告を通常の移行ポイントに表示するようにadmobポリシーが言ったように、ページ(記事)を開いた直後に広告を開きたいとします。webviewアプリにインタースティシャル広告を表示するにはどうすればよいですか?

どうすればいいですか?

また、ユーザーがリンクを開くたびに広告を表示しないように広告の外観を制御する方法も知りたいですか?

答えて

1

あなたはコルドバ/ PhoneGapの/イオンのようなフレームワークを使用している場合は、あなたの最高のチャンスはプラグインを使用することです:https://github.com/appfeel/admob-google-cordova/

そうでなければ、あなたがプラグインを取得し、コルドバの依存関係を削除しようとして呼び出し可能であることを、それをリファクタリングすることができますあなたのJavaScriptのフックが、それは痛みになります!

1

How to call admob Interstitial ad from android webview JavascriptInterface 私はアンドロイドwebviewからadmobインタースティシャルを表示するためのソリューションを提供しました。

例:

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(); 
}); 
関連する問題