यह उदाहरण दर्शाता है कि WebView में पेज लोडिंग प्रोग्रेस और पूरा होने को WebViewClient और WebChromeClient से कैसे मॉनिटर किया जाता है।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में File → New Project।
चरण 2: लेआउट XML
res/layout/activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="पेज लोड हो रहा है..."
android:textSize="18sp"
android:textColor="#000000"
android:padding="8dp" />
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_below="@id/textView"
android:layout_above="@id/btnLoad" />
<Button
android:id="@+id/btnLoad"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="URL लोड करें"
android:layout_marginBottom="16dp" />
</RelativeLayout>
चरण 3: MainActivity.java
package com.app.sample;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private WebView webView;
private TextView textView;
private Button btnLoad;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
btnLoad = findViewById(R.id.btnLoad);
webView = findViewById(R.id.webView);
// JavaScript इनेबल करें
webView.getSettings().setJavaScriptEnabled(true);
// डिफॉल्ट WebViewClient सेट करें
webView.setWebViewClient(new WebViewClient());
btnLoad.setOnClickListener(v -> {
textView.setText("पेज लोड हो रहा है: 0%");
// पेज लोड पूरा होने का लिस्टनर
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
Toast.makeText(MainActivity.this, "पेज पूरी तरह लोड हुआ", Toast.LENGTH_LONG).show();
textView.setText("पेज लोड पूरा: " + url);
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
Toast.makeText(MainActivity.this, "एरर: " + description, Toast.LENGTH_LONG).show();
}
});
// प्रोग्रेस लिस्टनर
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
textView.setText("पेज लोड हो रहा है: " + newProgress + "%");
if (newProgress == 100) {
textView.setText("पेज लोड पूरा");
}
}
});
webView.loadUrl("https://www.tutorialspoint.com");
});
}
@Override
public void onBackPressed() {
if (webView.canGoBack()) {
webView.goBack();
} else {
super.onBackPressed();
}
}
}
चरण 4: AndroidManifest.xml - इंटरनेट परमिशन
<manifest ...>
<uses-permission android:name="android.permission.INTERNET"/>
<application ...>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
महत्वपूर्ण अंतर
- WebViewClient.onPageFinished() - पेज पूरी तरह लोड होने पर कॉल होता है (रिडायरेक्ट के बाद भी)
- WebChromeClient.onProgressChanged() - लोडिंग प्रोग्रेस (0-100) देता है
- दोनों को एक साथ सेट करें
ऐप चलाएं
डिवाइस कनेक्ट करें, Run करें। "URL लोड करें" बटन दबाएं और प्रोग्रेस देखें।

