Why is HTML5 geolocation slower than native on Android?

半城伤御伤魂 提交于 2019-12-22 18:26:12

问题


I've been dabbling with hybrid app development using Cordova (an extendable web view wrapper for those who haven't used it). One thing that I've noticed is that whenever I request the user's location with window.geolocation, the location fix almost always takes longer compared to a native app.

For instance, it will take 5 or 6 seconds to get a suitable fix with window.geolocation from a "cold start", but the Google Maps app will pan to my location within 2 seconds or less. The same seems to happen with other native apps. This is kind of confusing as I'd imagine they both source data from the underlying Android API. Is there some sort of magic configuration option or caching strategy that I'm missing out on as a web-focused developer?


回答1:


Late to the party, but navigator.geolocation methods do not use any of the native APIs, that is why it is slower. It uses the WebView implementation of the device.

Also, I recently found out that accuracy gets capped at 10 meters no matter how good your GPS is.

The only fix is to use native code



来源:https://stackoverflow.com/questions/31308366/why-is-html5-geolocation-slower-than-native-on-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!