геолокация в Android WebView занимает много времени, чтобы вернуть местоположение - PullRequest
0 голосов
/ 10 апреля 2019

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

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

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

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

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

Для Android я пробовал

React-Native: реагировать-родной-веб-просмотр

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, чтобы увидеть, может ли производительность быть лучше или нет.

...