Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Android WebView में URL लोडिंग पूरी होने पर लिस्टनर कैसे लगाएं?

यह उदाहरण दर्शाता है कि 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 लोड करें" बटन दबाएं और प्रोग्रेस देखें।

Android WebView में URL लोडिंग पूरी होने पर लिस्टनर कैसे लगाएं?

Android WebView में URL लोडिंग पूरी होने पर लिस्टनर कैसे लगाएं?

  1. Android में WebView में URL लोड करते समय प्रोग्रेस बार कैसे दिखाएं? Android में WebView में URL लोड करते समय प्रोग्रेस बार कैसे दिखाएं?

    Android WebView में प्रोग्रेस बार दिखाने का गाइड यह ट्यूटोरियल दिखाता है कि जब WebView में कोई URL लोड हो रहा हो, तो प्रोग्रेस बार कैसे दिखाया जाए और लोडिंग पूरी होने पर उसे कैसे छुपाया जाए। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनकर नया प्रोजेक्ट बनाएं। चरण 2: लेआउट फ़

  1. एंड्रॉइड में URL से ImageView में इमेज कैसे लोड करें? एंड्रॉइड में URL से ImageView में इमेज कैसे लोड करें?

    एंड्रॉइड में इंटरनेट से इमेज लोड करने का आसान तरीका यह उदाहरण दर्शाता है कि AsyncTask का उपयोग करके URL से ImageView में इमेज कैसे लोड करें। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project पर जाएं और आवश्यक विवरण भरें। चरण 2: लेआउट में ImageView जोड़ें res/layout/activity_main.xml

  1. Android में URL एन्कोड कैसे करें? Android में URL एन्कोड कैसे करें?

    परिचय यह ट्यूटोरियल दिखाता है कि Android में URL एन्कोडिंग कैसे करें। स्पेशल कैरेक्टर्स (स्पेस, हिंदी टेक्स्ट, सिम्बल्स) को URL-सेफ फॉर्मेट में बदलने के लिए URLEncoder क्लास का उपयोग करते हैं। आवश्यक चरण चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project से नया प्रोजेक्ट बनाएं। चरण