কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েড অ্যাপে WebView তৈরির পদ্ধতি

WebView ব্যবহার করে অ্যাপে ওয়েবপেজ দেখান

এই টিউটোরিয়ালে দেখানো হয়েছে কিভাবে Android-এ WebView ব্যবহার করে একটি ওয়েবসাইট লোড করা, জাভাস্ক্রিপ্ট সক্রিয় করা, এবং ব্যাক বাটন হ্যান্ডলিং করা যায়।

ধাপ ১: প্রজেক্ট তৈরি

ধাপ ২: লেআউট (টাইপো ফিক্স: RelativeLayout)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:id="@+id/parent"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </WebView>
</RelativeLayout>

ধাপ ৩: MainActivity.java

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {
    private WebView webView;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        webView = findViewById(R.id.webView);
        
        // WebViewClient সেট করুন (লিংক অ্যাপের ভিতরে খোলবে)
        webView.setWebViewClient(new WebViewClient());
        
        // URL লোড করুন
        webView.loadUrl("https://www.google.com");
        
        // জাভাস্ক্রিপ্ট সক্রিয় করুন
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        
        // অন্যান্য উপকারী সেটিংস
        webSettings.setDomStorageEnabled(true);
        webSettings.setLoadWithOverviewMode(true);
        webSettings.setUseWideViewPort(true);
        webSettings.setBuiltInZoomControls(true);
        webSettings.setDisplayZoomControls(false);
    }
    
    // ব্যাক বাটন হ্যান্ডলিং
    @Override
    public void onBackPressed() {
        if (webView.canGoBack()) {
            webView.goBack();
        } else {
            super.onBackPressed();
        }
    }
}

ধাপ ৪: ম্যানিফেস্টে ইন্টারনেট পারমিশন

<uses-permission android:name="android.permission.INTERNET" />

WebViewClient vs WebChromeClient

WebViewClientWebChromeClient
পেজ লোডিং ইভেন্ট (onPageStarted, onPageFinished)জাভাস্ক্রিপ্ট অ্যালার্ট, কনফার্ম, প্রম্পট
URL লোডিং কন্ট্রোল (shouldOverrideUrlLoading)প্রগ্রেস বার, টাইটেল, ফেভিকন
এরর হ্যান্ডলিং (onReceivedError)কনসোল মেসেজ, জিএস লগ

দুইটোই একসাথে ব্যবহার করুন: webView.setWebChromeClient(new WebChromeClient());

সুরক্ষা এবং সেরা অনুশীলন

  • Cleartext траফিক: HTTP সাইট লোড করতে android:usesCleartextTraffic="true" ম্যানিফেস্টে (Application ট্যাগে)
  • Mixed Content: HTTPS পেজে HTTP রিসোর্স ব্লক হয়, setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW) (API 21+)
  • Zoom: বিল্ট-ইন জুম কন্ট্রোল ব্যবহার করুন, ডিসপ্লে বন্ধ রাখুন
  • Cache: setCacheMode(WebSettings.LOAD_DEFAULT) বা LOAD_CACHE_ELSE_NETWORK

WebViewAssetLoader (স্থায়ী ফাইল লোড)

assets/res/raw ফাইল লোড করতে WebViewAssetLoader (Jetpack) ব্যবহার করুন, নিরাপদে।

  1. Facebook-এ Android অ্যাপ তৈরি করার পদ্ধতি

  2. Android-এ মাল্টিলেভেল ListView (ExpandableListView) তৈরির পদ্ধতি

  3. Android-এ XML ফাইল ব্যবহার করে অ্যানিমেশন তৈরির পদ্ধতি

  4. যেকোনো অ্যান্ড্রয়েড অ্যাপের হোমস্ক্রিন শর্টকাট তৈরির পদ্ধতি