2017-03-08 2 views
0

Ich bin neu bei Android, vor kurzem entwickelte ich eine Anwendung, die auf WebView bedeutet in meiner Tätigkeit Ich legte ein Webview die Gamin-Aktivität durch HTML, Js Seiten durch Laden diese auf Webview.So laden Sie Interstitial-Anzeigen von Webview

Hier meine Anfrage „Wie die Interstitial-Anzeigen von der Webseite Dateien (HTML, js) laden gegoogelt ich die meisten Vorschläge im Zusammenhang mit Ionic App aber meine App ist Android Studio verwendet. so bitte helfen

Antwort

0

hallo dies ist der Code ....

import android.os.Bundle; import android.view.Window; import android.view.WindowManager; 
 
import android.support.v7.app.AppCompatActivity; 
 
import android.webkit.WebSettings; 
 
import android.webkit.WebView; 
 
import android.webkit.WebViewClient; 
 

 
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; 
 

 
public class a4 extends AppCompatActivity { 
 

 
    AdView mAdView; 
 
    InterstitialAd mInterstitialAd; 
 
    WebView WebViewWithCSS; 
 

 
    @Override 
 
    protected void onCreate(Bundle savedInstanceState) { 
 
     super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
 
     setContentView(R.layout.activity_a4); 
 

 
     WebViewWithCSS = (WebView)findViewById(R.id.webView); 
 

 
     WebSettings webSetting = WebViewWithCSS.getSettings(); 
 
     webSetting.setJavaScriptEnabled(true); 
 

 
     WebViewWithCSS.setWebViewClient(new WebViewClient()); 
 
     WebViewWithCSS.loadUrl("file:///android_asset/4.html"); 
 

 
     mAdView = (AdView) findViewById(R.id.adView); 
 
     AdRequest adRequest = new AdRequest.Builder() 
 
       .build(); 
 
     mAdView.loadAd(adRequest); 
 

 
     mInterstitialAd = new InterstitialAd(this); 
 

 
     // set the ad unit ID 
 
     mInterstitialAd.setAdUnitId(getString(R.string.interstitial_full_screen)); 
 

 
     adRequest = new AdRequest.Builder() 
 
       .build(); 
 

 
     // Load ads into Interstitial Ads 
 
     mInterstitialAd.loadAd(adRequest); 
 

 
     mInterstitialAd.setAdListener(new AdListener() { 
 
      public void onAdLoaded() { 
 
       showInterstitial(); 
 
      } 
 
     }); 
 
    } 
 

 
    @Override 
 
    public void onPause() { 
 
     if (mAdView != null) { 
 
      mAdView.pause(); 
 
     } 
 
     super.onPause(); 
 
    } 
 

 
    @Override 
 
    public void onResume() { 
 
     super.onResume(); 
 
     if (mAdView != null) { 
 
      mAdView.resume(); 
 
     } 
 
    } 
 

 
    @Override 
 
    public void onDestroy() { 
 
     if (mAdView != null) { 
 
      mAdView.destroy(); 
 
     } 
 
     super.onDestroy(); 
 
    } 
 

 

 
    private void showInterstitial() { 
 
     if (mInterstitialAd.isLoaded()) { 
 
      mInterstitialAd.show(); 
 
     } 
 
    } 
 
}

+0

Hai Raman, Danke für die Antwort, aber in dem oben, wo ist die Kommunikation zwischen Webview und Aktivität. In meinem Sinne muss ich laden und InterstitialAd wann immer ein Ereignis von der Webansicht ausgelöst wird. Der obige Code hat keine solche Kommunikation. – RamBen

0

eine Anzeige von WebView Laden nicht so einfach ist, aber getan werden könnte. So nehmen wir die folgende exampl e:

class MainActivity extends AppCompatActivity { 
    protected InterstitialAd mInterstitialAd; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    // load interstitial ad 
    mInterstitialAd = new InterstitialAd(getContext()); 
    mInterstitialAd.setAdUnitId("YOUR_AD_ID"); 
    mInterstitialAd.loadAd(new AdRequest.Builder().build()); 

    WebView browser = findViewById(R.id.webview); 
    browser.addJavascriptInterface(new InterceptorJavaScript(context), "Interceptor"); 

    WebSettings webSettings = browser.getSettings(); 
    webSettings.setJavaScriptEnabled(true); 
    webSettings.setDomStorageEnabled(true); 

    browser.setWebViewClient(new CapturingWebViewClient()); 

    browser.loadUrl("http://website.com"); 
    } 

    /** 
    * This class will handle all JS events from the UI back to 
    * Java code and will trigger the Interstitial ad 
    */ 
    private class InterceptorJavaScript { 
    Context webViewContext; 

    /** 
    * Instantiate the interface and set the context 
    */ 
    InterceptorJavaScript(Context webView) { 
     webViewContext = webView; 
    } 

    @JavascriptInterface 
    @SuppressWarnings("unused") 
    public void startInterstitial() { 
     // we need to run it on the main UI thread 
     Handler mHandler = new Handler(Looper.getMainLooper()); 
     mHandler.post(new Runnable() { 
     @Override 
     public void run() { 
      if (MainActivity.mInterstitialAd.isLoaded()) { 
      MainActivity.mInterstitialAd.show(); 
      } 
      // preload new ad 
      BrowserFragment.mInterstitialAd.loadAd(new AdRequest.Builder().build()); 
     } 
     }); 
    } 
    } 

    private class CapturingWebViewClient extends WebViewClient { 
    /** 
    * This method will inject the JavaScritp that will trigger 
    * your Java code and show the interstitial in the main UI thread 
    */ 
    @Override 
    public void onPageFinished(WebView view, String url) { 
     super.onPageFinished(view, url); 
     view.loadUrl(
      "javascript:Interceptor.startInterstitial();" 
     ); 
     // Attach JS event to your button so you can call the JS function. I've used jQuery just for simplicity 
     view.loadUrl(
      "javascript:$('#btn').on('click', function(){ Interceptor.startInterstitial(); });" 
     ); 
    } 
    } 
}