2016-09-15 8 views
0

webview 앱에 삽입 광고를 게재하고 admob 정책이 정상 전환점에 광고를 표시하도록 말한대로 페이지 (기사)를 열면 광고가 열리도록하고 싶습니다.webview 앱에서 전면 광고를 표시하는 방법은 무엇입니까?

어떻게 할 수 있습니까?

그리고 사용자가 링크를 열 때마다 광고가 표시되는 것을 원치 않으므로 광고 모양을 제어하는 ​​방법을 알고 싶습니다. 그렇지 않으면 https://github.com/appfeel/admob-google-cordova/

당신이 플러그인을 얻을 코르도바 의존성을 제거하고에 호출 할 그것을 리팩토링을 시도 할 수 있습니다 : 당신이 코르도바/폰갭/이온과 같은 프레임 워크를 사용하는 경우

답변

1

당신의 가장 좋은 기회는 플러그인을 사용하는 것입니다 귀하의 자바 스크립트 후크,하지만 고통 될 것입니다!

1

How to call admob Interstitial ad from android webview JavascriptInterface 나는 admob interstitial을 android webview에서 보여주는 해결책을 제시했습니다.

예 :

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

자바 스크립트에서 호출

$("#btn1").click(function(){ 
    Android.showAdFromJs(); 
}); 
관련 문제