Геолокация в Android WebView занимает много времени, чтобы вернуть местоположение

Я пытаюсь встроить свой веб-сайт в WebView на мобильной стороне. Мой сайт будет запрашивать местоположение пользователя, чтобы вернуться в ближайший магазин.

Работает нормально для обоих browsers из android а также iOS устройства. Однако загрузка очень медленная (1-5 с), когда я использую WebView для переноса своего сайта.

PS: он работает нормально (<0,5 с) даже в браузере Android-устройств (Chrome и т. Д.)

я использую html5 api для получения местоположения.

...
navigator.geolocation.getCurrentPosition(
        successHandler,
        errHandler,
        { enableHighAcuracy: true }
...

Для андроида я пробовал

React-Native: response-native-webview

Android: Собственный WebView

Для обоих случаев я включил

web_view.settings.setAppCacheEnabled(true)
web_view.settings.domStorageEnabled = true
web_view.settings.javaScriptEnabled = true
web_view.settings.setGeolocationEnabled(true)
web_view.settings.databaseEnabled = true
web_view.webChromeClient = object : WebChromeClient() {
            override fun onGeolocationPermissionsShowPrompt(
                origin: String?,
                callback: GeolocationPermissions.Callback?
            ) {
                callback?.invoke(origin, true, true)
            }
        }

Я собираюсь попробовать watchLocation API, чтобы увидеть, может ли производительность быть лучше или нет.

0 ответов

Другие вопросы по тегам