Saya harus mengambil lokasi pengguna di file WebView
. Saya melakukan ini dengan Javascript berikut:
function getLocation() {
navigator.geolocation.getCurrentPosition(displayLocation, handleError);
}
Tetapi popup permintaan izin tidak pernah terbuka.
Saya telah mengatur pengaturan ini:
ws.setJavaScriptEnabled(true);
ws.setGeolocationEnabled(true);
ws.setJavaScriptCanOpenWindowsAutomatically(true);
Apa cara yang benar untuk mengakses lokasi pengguna dari dalam WebView
?
sumber
android.webkit.WebChromeClient()
alih-alih hanyaWebChromeClient()
danandroid.webkit.GeolocationPermissions.Callback
untuk membuat ini berfungsi.Apakah Anda menyatakan izin itu dalam manifes Anda?
Anda mungkin juga perlu menyatakan izin lokasi lain, seperti ini:
sumber
Dialog untuk menerima atau menolak lokasi pengguna dirancang oleh programmer: D. Seperti yang dikatakan Chris Cashwell, Anda cukup menggunakan panggilan balik seperti ini:
Dalam beberapa kasus, HTML5 perlu menggunakan penyimpanan, Anda harus mengaktifkan beberapa properti agar tampilan web memiliki akses penuh untuk berjalan normal.
sumber
Berbagi kelas aktivitas Kerja saya, ini adalah solusi lengkap yang dapat menunjukkan
Semoga menghemat waktu seseorang
sumber
Ini adalah contoh menampilkan dialog peringatan untuk mempromosikan izin pengguna untuk menggunakan lokasinya:
sumber
Saya baru-baru ini menemukan jenis situasi ini dan telah melakukan langkah-langkah di bawah ini untuk mencapai ini:
Langkah 1: Tambahkan izin di
AndroidManifest.xml
file AndaLangkah 2: Buat aktivitas yang akan berisi
WebView
danProgressBar
(dalam kasus saya)Langkah 3: Di kelas aktivitas Anda, tambahkan kode di bawah ini dan buat perubahan sesuai kebutuhan Anda
sumber