Assalamu'alaikum Masbro! Pernah nggak sih kamu buka link di aplikasi dan tiba-tiba bisa langsung melihat isi web tanpa harus keluar dari aplikasi? Nah, itu semua berkat si kecil mungil yang namanya WebView. WebView ini kayak jembatan yang menghubungkan aplikasi kita dengan semesta internet. Gak perlu repot buka browser, cukup di aplikasi aja kita bisa jelajah dunia maya.
Apa Itu WebView? WebView itu sebenernya sebuah komponen di Android yang bisa menampilkan halaman web langsung di aplikasi. Jadi, gak perlu pindah-pindah aplikasi cuma buat buka web. Misalnya nih, kamu lagi asyik scrolling Instagram, terus ada link menarik. Tinggal klik, dan voila! Langsung deh muncul isi webnya di dalam Instagram. Praktis kan?
Kenapa WebView Penting? Bayangin aja kalau tiap mau buka link harus keluar dari aplikasi, buka browser, baru deh lihat isi webnya. Ribet, kan? Dengan WebView, pengalaman pengguna jadi lebih seamless. Plus, developer juga bisa lebih leluasa ngatur tampilan web sesuai dengan style aplikasi mereka.
Gimana Cara Kerja WebView? WebView ini kerjanya mirip browser, tapi dalam skala mini. Dia menggunakan mesin WebKit dari Chromium buat render halaman web. Jadi, apa yang kamu lihat di WebView, itu sama persis dengan yang ada di Chrome.
Customisasi WebView Yang asyik dari WebView, kita bisa custom sesuai kebutuhan. Mau tambahin fitur zoom, scroll, atau pencarian di dalam WebView? Bisa banget! Developer bisa atur sesuai keinginan, biar pengguna makin nyaman.
Update WebView Dulu, WebView cuma bisa di-update lewat sistem operasi Android itu sendiri. Tapi sekarang, Google udah bikin WebView bisa di-update langsung dari Play Store. Jadi, kita bisa dapetin fitur terbaru dan patch keamanan lebih cepat.
WebView itu penting banget buat aplikasi yang sering interaksi sama web. Dengan WebView, kita bisa kasih pengalaman yang lebih keren ke pengguna. Jadi, buat kamu yang developer, jangan lupa masukin WebView ke dalam aplikasi kamu, ya!
Mengubah web menjadi aplikasi android dengan Android Studio.
Langkah 1: Persiapan Proyek
Langkah 2: Menyiapkan WebView
package com.ldii.ldiisampit;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.webkit.WebResourceRequest;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.net.Uri;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView myWeb = (WebView) findViewById(R.id.myWeb);
myWeb.getSettings().setJavaScriptEnabled(true);
myWeb.getSettings().setDomStorageEnabled(true);
myWeb.loadUrl("https://www.ldiisampit.or.id/");
myWeb.setWebViewClient(new CustomWebViewClient());
}
private static class CustomWebViewClient extends WebViewClient {
@SuppressWarnings("deprecation")
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return handleUri(view, Uri.parse(url));
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return handleUri(view, request.getUrl());
}
private boolean handleUri(WebView view, Uri uri) {
String uriString = uri.toString();
Intent intent = null;
if (uriString.startsWith("whatsapp://")) {
intent = new Intent(Intent.ACTION_VIEW, uri);
} else if (uriString.startsWith("tg://")) {
intent = new Intent(Intent.ACTION_VIEW, uri);
}
if (intent != null) {
try {
view.getContext().startActivity(intent);
return true; // Mengindikasikan bahwa kita telah menangani URI tersebut
} catch (Exception e) {
// Jika aplikasi tidak terinstal, Anda bisa menampilkan pesan atau melakukan tindakan lain
Toast.makeText(view.getContext(), "Aplikasi tidak terinstal.", Toast.LENGTH_SHORT).show();
}
}
return false; // WebView akan memuat URI seperti biasa
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<WebView
android:id="@+id/myWeb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<WebView
android:id="@+id/myWeb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Langkah 3: Konfigurasi Internet Permission
Buka file AndroidManifest.xml.
Tambahkan izin internet dengan menambahkan baris berikut di dalam tag <manifest>:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:usesCleartextTraffic="true"
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.LDIISampit"
tools:targetApi="31">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>