Saya telah memuat URL eksternal di blog saya WebView
. Sekarang yang saya butuhkan adalah ketika pengguna mengklik tautan di halaman yang dimuat, itu harus bekerja seperti browser normal dan membuka tautan di dalamnya WebView
. Tapi itu membuka browser default dan memuat halaman di sana?
Saya telah mengaktifkan JavaScript. Tapi tetap saja itu tidak berhasil. Apakah saya lupa sesuatu?
WebViewClient
dan tidak perlu subklasifikasi jika ini yang Anda lakukan. Saya berhasil ini hanya dengan melakukanmyWebView.setWebViewClient(new WebViewClient());
dalam beberapa kasus Anda mungkin perlu mengganti onLoadResource jika Anda mendapatkan arahan ulang yang tidak memicu metode pemuatan url. dalam hal ini saya mencoba yang berikut:
sumber
Dokumentasi resmi mengatakan, klik pada tautan di WebView akan meluncurkan aplikasi yang menangani URL. Anda perlu mengganti perilaku default ini
atau jika tidak ada logika kondisional dalam metode cukup lakukan ini
sumber
Tambahkan 2 baris ini dalam kode Anda -
sumber
Metode
boolean shouldOverrideUrlLoading(WebView view, String url)
ini sudah tidak digunakan lagi di API 24. Jika Anda mendukung perangkat baru, Anda harus menggunakannyaboolean shouldOverrideUrlLoading (WebView view, WebResourceRequest request)
.Anda dapat menggunakan keduanya dengan melakukan sesuatu seperti ini:
sumber
Jawaban Arulx Z tepat seperti yang saya cari.
Saya sedang menulis aplikasi dengan Navigasi Drawer dengan tampilan daur ulang dan tampilan web, untuk menjaga penjelajahan web di dalam aplikasi terlepas dari hyperlink yang diklik (sehingga tidak meluncurkan browser web eksternal). Untuk itu cukuplah menempatkan 2 baris kode berikut:
mWebView.setWebChromeClient(new WebChromeClient()); mWebView.setWebViewClient(new WebViewClient());
persis di bawah pernyataan WebView Anda.
Berikut adalah contoh kode WebView yang saya implementasikan:
dengan cara ini, setiap tautan yang diklik di situs web akan dimuat di dalam WebView Anda. (Menggunakan Android Studio 1.2.2 dengan semua SDK diperbarui)
sumber