Introduction

Using WebView we can create an Android application but not a native Android application.
Assuming we want to customize that application, we must capture the request executed when the web page is loaded.
When the request is captured then we can only redirect the control to an activity then we can develop the activity using an overridden method in WebViewClient.
  1. public void onLoadResource(WebView view, String url){}
For instance,
  1. WebView mWebView;
  2. mWebView.setWebViewClient(new MyWebViewClient()
  3. {
  4. @Override
  5. public void onLoadResource(WebView view, String url){
  6. System.out.println("Current URL : "+ url + " " + Html.fromHtml("<br>") + " is http url ? "+ URLUtil.isHttpUrl(url));
  7. if( url.equals("http://www.c-sharpcorner.com/1/247/android-programming.aspx"))
  8. {
  9. Toast.makeText(getApplicationContext(), "Android Articles page is loading... ", Toast.LENGTH_LONG).show();
  10. }
  11. }
  12. }
    Assume we want to get cookies to get session details and other information, then depending on the URL we can get the cookies.
    We can also get the session of the web page loaded in the WebView.
    CookieSyncManager
    The CookieSyncManager synchronizes the browser cookie store between main memory and permanent storage.
    1. CookieSyncManager.getInstance().sync();
    For instance,
    1. public void onPageFinished(WebView view, String url){
    2. CookieSyncManager.getInstance().sync();
    3. URL url1 = null;
    4. try {
    5. url1 = new URL(url);
    6. }
    7. catch (MalformedURLException e) {
    8. // TODO Auto-generated catch block
    9. e.printStackTrace();
    10. }
    11. System.out.println("C sharp corner user Ref " + url1.getRef());
    12. System.out.println(" C sharp corner user host " + url1.getHost());
    13. System.out.println("C sharp corner user authority " + url1.getAuthority());
    14. String cookies = CookieManager.getInstance().getCookie(url);
    15. System.out.println("All COOKIES " + cookies);
    16. Toast.makeText(getApplicationContext(),"All Cookies " + cookies , Toast.LENGTH_LONG).show();
    17. }
      Source Code-
      MainActivity.java
      1. package com.example.webviewdemo;
      2. import java.net.MalformedURLException;
      3. import java.net.URL;
      4. import android.annotation.SuppressLint;
      5. import android.app.Activity;
      6. import android.content.Context;
      7. import android.os.Bundle;
      8. import android.text.Html;
      9. import android.webkit.CookieManager;
      10. import android.webkit.CookieSyncManager;
      11. import android.webkit.URLUtil;
      12. import android.webkit.WebView;
      13. import android.webkit.WebViewClient;
      14. import android.widget.Toast;
      15. public class MainActivity extends Activity {
      16. public Context context;
      17. public class MyWebViewClient extends WebViewClient {}
      18. WebView mWebView;
      19. String url = "http://www.c-sharpcorner.com/";@SuppressLint("SetJavaScriptEnabled")@Override
      20. public void onCreate(Bundle savedInstanceState) {
      21. super.onCreate(savedInstanceState);
      22. setContentView(R.layout.activity_main);
      23. mWebView = (WebView) findViewById(R.id.webView1);
      24. mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
      25. mWebView.getSettings().setBuiltInZoomControls(true);
      26. mWebView.setWebViewClient(new MyWebViewClient() {@Override
      27. public void onLoadResource(WebView view, String url) {
      28. System.out.println("Current URL : " + url + " " + Html.fromHtml("<br>") + " is http url ? " + URLUtil.isHttpUrl(url));
      29. if (url.equals("http://www.c-sharpcorner.com/1/247/android-programming.aspx")) {
      30. Toast.makeText(getApplicationContext(), "Android Articles page is loading... ", Toast.LENGTH_LONG).show();
      31. }
      32. }@Override
      33. public void onPageFinished(WebView view, String url) {
      34. CookieSyncManager.getInstance().sync();
      35. URL url1 = null;
      36. try {
      37. url1 = new URL(url);
      38. } catch (MalformedURLException e) {
      39. // TODO Auto-generated catch block
      40. e.printStackTrace();
      41. }
      42. System.out.println("C sharp corner user Ref " + url1.getRef());
      43. System.out.println(" C sharp corner user host " + url1.getHost());
      44. System.out.println("C sharp corner user authority " + url1.getAuthority());
      45. String cookies = CookieManager.getInstance().getCookie(url);
      46. System.out.println("All COOKIES " + cookies);
      47. Toast.makeText(getApplicationContext(), "All Cookies " + cookies, Toast.LENGTH_LONG).show();
      48. }
      49. });
      50. mWebView.getSettings().setJavaScriptEnabled(true);
      51. mWebView.loadUrl(url);
      52. }@Override
      53. public void onBackPressed() {
      54. if (mWebView.canGoBack()) {
      55. mWebView.goBack();
      56. } else {
      57. super.onBackPressed();
      58. }
      59. }
      60. }
        activity_main.xml
        1. <?xml version="1.0" encoding="utf-8"?>
        2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        3. android:layout_width="match_parent"
        4. android:layout_height="match_parent"
        5. android:orientation="vertical" >
        6. <WebView
        7. android:id="@+id/webView1"
        8. android:layout_width="match_parent"
        9. android:layout_height="match_parent" />
        10. </LinearLayout>
          Note
          Add Permission of the internet in the manifest file.
          1. <uses-permission android:name="android.permission.INTERNET" />
          Output
          After capturing the request URL before a web page,
          Android Program
          After getting a cookies session in a WebView,
          Figure 2- WebView