एंड्रॉइड WebView में पासवर्ड सेव करने का तरीका
यह उदाहरण दर्शाता है कि एंड्रॉइड WebView में फॉर्म डेटा और पासवर्ड सेव करने की सुविधा कैसे इनेबल की जाए। ध्यान दें कि setSavePassword(true) API 18 (Android 4.3) में डिप्रिकेट हो गया था और बाद के संस्करणों में काम नहीं करता।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में File → New Project पर जाएं और आवश्यक विवरण भरकर एक नया प्रोजेक्ट बनाएं।
चरण 2: लेआउट फ़ाइल संशोधित करें
res/layout/activity_main.xml में निम्न कोड जोड़ें:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<WebView
android:id="@+id/web_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
उपरोक्त कोड में हमने facebook.com दिखाने के लिए एक WebView लिया है।
चरण 3: MainActivity.java में कोड जोड़ें
src/MainActivity.java में निम्न कोड जोड़ें:
package com.example.myapplication;
import android.app.ProgressDialog;
import android.os.Build;
import android.os.Bundle;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends AppCompatActivity {
@RequiresApi(api = Build.VERSION_CODES.P)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ProgressDialog progressDialog = new ProgressDialog(this);
progressDialog.setMessage("Loading Data...");
progressDialog.setCancelable(false);
WebView web_view = findViewById(R.id.web_view);
web_view.requestFocus();
web_view.getSettings().setJavaScriptEnabled(true);
// डिप्रिकेटेड मेथड - केवल पुराने API लेवल के लिए
web_view.getSettings().setSavePassword(true);
web_view.getSettings().setSaveFormData(true);
web_view.loadUrl("https://touch.facebook.com/");
web_view.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
web_view.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
if (progress < 100) {
progressDialog.show();
}
if (progress == 100) {
progressDialog.dismiss();
}
}
});
}
}
चरण 4: AndroidManifest.xml में परमिशन जोड़ें
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="com.example.myapplication">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<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>
ऐप चलाएं
अपने वास्तविक एंड्रॉइड डिवाइस को कंप्यूटर से कनेक्ट करें। Android Studio में प्रोजेक्ट की एक्टिविटी फ़ाइल खोलें और टूलबार से Run आइकन पर क्लिक करें। अपना मोबाइल डिवाइस चुनें और देखें कि WebView में facebook.com लोड होगा।
आधुनिक विकल्प
महत्वपूर्ण:setSavePassword()औरsetSaveFormData()API 18 में डिप्रिकेट हो गए थे और Android 5.0+ में इनका कोई प्रभाव नहीं पड़ता।
आधुनिक एंड्रॉइड संस्करणों में पासवर्ड मैनेजमेंट के लिए:
- Autofill Framework (Android 8.0+) - सिस्टम-वाइड ऑटोफिल सेवा
- Google Smart Lock - पासवर्ड सिंक और ऑटोफिल
- WebView में फॉर्म डेटा - ब्राउज़र की तरह ऑटोफिल सपोर्ट
WebView में ऑटोफिल सपोर्ट इनेबल करने के लिए (API 26+):
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
web_view.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_YES);
}