Last Updated on 11 years by Mas Herdi
Oke, sudah lama saya tidak menulis tutorial di sini. ^^ Kali ini saya akan menulis sebuah tutorial yang cukup simple, namun barangkali akan berguna, yaitu tutorial tentang bagaimana membuat sebuah web launcher sederhana menggunakan Class yang sudah ada di Android, yaitu WebView.
Seperti yang dijelaskan pada postingan saya tentang arsitektur Android, ada banyak komponen pada Android yang bisa kita gunakan lagi, atau istilahnya reusable. Salah satu contohnya adalah komponen WebView ini yang bisa kita gunakan ketika ingin membuat sebuah web browser atau web launcher sederhana. Caranya sendiri cukup mudah, kita tinggal menspesifikasikan URL web yang akan kita tampilkan menggunakan WebView, dan aplikasi web launcher kita pun sudah bisa digunakan.
Membuat Web Launcher Sederhana di Android
Pertama-tama, seperti biasa buat sebuah proyek Android baru. Setelah itu masuk ke folder res/layout, dan buka file xml yang ada di situ. Ganti kodenya dengan layout WebView seperti di bawah :
WebView Layout
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <WebView android:id="@+id/web_view" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0" /> </LinearLayout>
Layout di atas akan otomatis menampilkan sebuah web view pada layar.
Main Activity
Setelah itu pada Android main activity, buatlah sebuah kelas yang berfungsi untuk membuat sebuah web browser baru menggunakan WebView dan kemudian menampilkan halaman web sesuai dengan URL yang kita berikan. Pada project ini nama main activity-nya yaitu MapWebViewActivity. Kodenya adalah sebagai berikut :
package id.twooh.MapWebView; import android.app.Activity; import android.os.Bundle; import android.webkit.WebChromeClient; import android.webkit.WebView; public class MapWebViewActivity extends Activity { /** Called when the activity is first created. */ private WebView webView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //Mengeset webView sebagai layout utama webView = (WebView) findViewById(R.id.web_view); //memanggil method openBrowser #youdontsay openBrowser(); } //karena ada method static yang diakses oleh method non-static (openBrowser) @SuppressWarnings("static-access") private void openBrowser() { //memanggil URL www.twoh.co String url = "http://www.twoh.co"; //Menginstantiasi webchrome client baru, buat gaya-gayaan aja B) WebChromeClient wcc = new WebChromeClient(); webView.setWebChromeClient(wcc); //mengaktifkan javascript, kalo nggak aktif... TRY IT! webView.getSettings().setJavaScriptEnabled(true); //mengaktifkan built in zoom controls webView.getSettings().setBuiltInZoomControls(true); //bagian ini akan dijelaskan webView.enablePlatformNotifications(); //meload URL webView.loadUrl(url); } }
Pada barisan kode di atas, maaf kalo terlihat berantakan, soalnya saya males njelasin terpisah, jadi saya jelaskan sekalian di comment. Oke, di bagian ini,
webView.enablePlatformNotifications();
statics method enablePlatformNotifications() berfungsi untuk untuk mengaplikasikan setting-an yang telah diatur pada emulator, termasuk setting-an proksi. Jadi apabila kalian berada di lingkungan yang dilindungi oleh proksi, webview ini masih bisa mengakses internet, asal settingan proksinya telah diatur terlebih dahulu.
Kemudian, dokumentasi Android sendiri sudah mengkategorikan method enabledPlatformNotifications() sebagai method yang deprecated/obsolete. Sehingga sekarang notifications ter-enabled secara default. Namun, sebagai catatan, walapun begitu saya mencoba untuk menghilangkan penggunaan method ini dan menjalankannya di lingkungan ber-proksi, hasilnya aplikasi tidak menampilkan apa-apa.
Jika kalian mempunyai koneksi bebas hambatan, maka method tersebut tidak usah digunakan dalam kode.
Seperti namanya web launcher, maka aplikasi ini didesain untuk membuka satu buah halaman web saja. URL untuk halaman web tersebut kita spesifikasikan pada bagian berikut :
String url = "http://www.twoh.co";
Proyek ini menggunakan URL web ini sebagai contoh :D, namun silahkan kalau ingin menggantinya.
Android Manifest
Terakhir, sekarang seperti biasa kita akan mengatur permission dan lain-lainnya pada file AndroidManifest.xml. Tambahkan dua baris kode berikut ini tepat sebelum tag application.
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Permission yang terakhir, ACCESS_NETWORK_STATE digunakan berhubungan dengan method yang deprecated tadi.
Inilah tampilan akhir ketika program dijalankan.
terima kasih untuk tipnya yang sangat bermanfaat. itu ada aplikasinya ya UI ya mas?
ini pake software programming apa ya?
Mas untuk url yang local (file:///android_asset/namafile.html) saya coba buka link yang terhubung ke page.html local kok tidak bisa ya, padahal file page.html nya sudah saya copy di directory asset project android? mohon bantuannya. Terima Kasih.
sama, dan ketika klik Link, diarahkan membuka browser,
Apakah ada trik utk mengatasi kendala ini ya ?
makasih gan tutorialnya bagus banget, cocok buat ane yang baru belajar
saya coba dulu semoga berhasil, kalo ndak bisa
bantu ya mas 🙂
Hasilnya Keren Min, tapi lumayan rumit juga ya prosesnya kude paham betul.
gan ada cara simpelnya gak ? saya cuma buat aplikasi webview yang nampilin langsung update-an postingan dari website saya , kalau bisa buat tutorial versi firebase nya gan
Ini udah versi simpel banget gan