Advertisement
Guest User

Untitled

a guest
Jan 25th, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.55 KB | None | 0 0
  1. package samples.android.com.webtester;
  2.  
  3. import android.annotation.SuppressLint;
  4. import android.app.ProgressDialog;
  5. import android.content.Context;
  6. import android.content.DialogInterface;
  7. import android.content.Intent;
  8. import android.graphics.Bitmap;
  9. import android.net.Uri;
  10. import android.net.http.SslError;
  11. import android.os.Build;
  12. import android.os.Handler;
  13. import android.support.v7.app.AlertDialog;
  14. import android.support.v7.app.AppCompatActivity;
  15. import android.os.Bundle;
  16. import android.webkit.CookieManager;
  17. import android.webkit.JavascriptInterface;
  18. import android.webkit.SslErrorHandler;
  19. import android.webkit.WebChromeClient;
  20. import android.webkit.WebSettings;
  21. import android.webkit.WebView;
  22. import android.webkit.WebViewClient;
  23. import android.widget.Toast;
  24.  
  25. public class MainActivity extends AppCompatActivity {
  26.  
  27.  
  28.     private WebView mWebView;
  29.     private ProgressDialog mProgressDialog;
  30.  
  31.  
  32.  
  33.     public void showProgressDialog(String msg) {
  34.         if (mProgressDialog == null) {
  35.             mProgressDialog = new ProgressDialog(this);
  36.             mProgressDialog.setCancelable(false);
  37.         }
  38.  
  39.         mProgressDialog.setMessage(msg);
  40.         mProgressDialog.show();
  41.     }
  42.  
  43.     public void hideProgressDialog() {
  44.         if (mProgressDialog != null && mProgressDialog.isShowing()) {
  45.             mProgressDialog.dismiss();
  46.         }
  47.     }
  48.  
  49.     @Override
  50.     @JavascriptInterface
  51.     protected void onCreate(Bundle savedInstanceState) {
  52.         super.onCreate(savedInstanceState);
  53.         setContentView(R.layout.activity_main);
  54.  
  55.         getSupportActionBar().setDisplayShowHomeEnabled(true);
  56.         getSupportActionBar().setDisplayHomeAsUpEnabled(true);
  57.  
  58.         //make sure you cast the web view before using loadUrl() function :
  59.         mWebView =(WebView)findViewById(R.id.webview);
  60.         CookieManager.getInstance().setAcceptCookie(true);
  61.         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
  62.             // If Android 6.0+ i must add support for Third Party Cookies
  63.             CookieManager.getInstance().setAcceptThirdPartyCookies(mWebView, true);
  64.         }
  65.         mWebView.getSettings().setPluginState(WebSettings.PluginState.ON);
  66.         mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(false);
  67.         //mWebView.getSettings().setPluginsEnabled(true);
  68.         mWebView.getSettings().setSupportMultipleWindows(false);
  69.         mWebView.getSettings().setSupportZoom(true);
  70.         mWebView.setVerticalScrollBarEnabled(true);
  71.         mWebView.setHorizontalScrollBarEnabled(true);
  72.         mWebView.getSettings().setBuiltInZoomControls(true);
  73.         mWebView.getSettings().setLoadWithOverviewMode(true);
  74.         mWebView.getSettings().setUseWideViewPort(true);
  75.         mWebView.getSettings().setUserAgentString("Android WebView");
  76.         mWebView.getSettings().setDomStorageEnabled(true);
  77.         mWebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
  78.         mWebView.getSettings().setJavaScriptEnabled(true);
  79.         mWebView.addJavascriptInterface(this, "Android");// add this only if required. Vulnerable to mitm attacks.
  80.         //mWebView.addJavascriptInterface(this, "Android");// add this only if required. Vulnerable to mitm attacks.
  81.         mWebView.getSettings().setLoadsImagesAutomatically(true);
  82.         mWebView.getSettings().setAppCacheEnabled(true);
  83.         mWebView.getSettings().setAllowFileAccess(true);
  84.         mWebView.getSettings().setLoadWithOverviewMode(true);
  85.         //mWebView.loadUrl("https://waveswallet.io");
  86.         //mWebView.loadUrl(getIntent().getExtras().getString("URL"));
  87.         //mWebView.loadUrl("https://waveswallet.io");
  88.         mWebView.setWebChromeClient(new WebChromeClient());
  89.         mWebView.setWebViewClient(new WebViewClient(){
  90.             @Override
  91.             public boolean shouldOverrideUrlLoading(WebView view, String url) {
  92.  
  93.  
  94.                 if (Uri.parse(url).getHost().endsWith("icominter.com") ) {
  95.                     // This is my web site, so do not override; let my WebView load the page
  96.                     return false;
  97.                 }
  98.                 //Log.d("webview :" , Uri.parse(url).getHost());
  99.                 // Otherwise, the link is not for a page on my site, so launch another Activity that handles URLs
  100.                 Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
  101.                 startActivity(intent);
  102.                 return true;
  103.             }
  104.  
  105.             @Override
  106.             public void onPageStarted(WebView view, String url, Bitmap favicon){
  107.                 // Page loading started
  108.                 // Do something
  109.                 showProgressDialog("Loading...");
  110.             }
  111.  
  112.             @Override
  113.             public void onPageFinished(WebView view, String url){
  114.                 // Page loading finished
  115.                 hideProgressDialog();
  116.             }
  117.  
  118.             @Override
  119.             public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error){
  120.                         handler.proceed();
  121.             }
  122.  
  123.  
  124.         });
  125.  
  126.         mWebView.loadUrl("https://waveswallet.io");
  127.         //mWebView.loadUrl(getIntent().getExtras().getString("URL"));*/
  128.  
  129.  
  130.  
  131.     }
  132.  
  133.  
  134.     @Override
  135.     public boolean onSupportNavigateUp(){
  136.         finish();
  137.         return true;
  138.     }
  139.  
  140.     @Override
  141.     public void onDestroy() {
  142.         super.onDestroy();
  143.         this.mWebView.stopLoading();
  144.         this.mWebView.setWebChromeClient(null);
  145.         this.mWebView.setWebViewClient(null);
  146.         this.mWebView.destroy();
  147.         this.mWebView = null;
  148.     }
  149.  
  150.  
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement