How do you get lat long info using navigator.geolocation when connecting to 192.168.x.x
我正在尝试建立一个纯本地无线局域网,无法访问更广泛的互联网。即所有网站都通过 192.168.x.x 地址从主机提供服务。
一个主机 (192.168.1.100) 正在提供一个包含这种 javascript 的网页:
navigator.geolocation.getCurrentPosition(showPosition,errorPosition,{ enableHighAccuracy:true });
我正在使用 Android 手机连接到此主机。 (目的是提取手机的 GPS 位置并将其上传到主机,以便通过 KML 文件显示在 Google 地球上)。
当我通过 http://example.com/locationtest.html 之类的命名服务器在 WAN 上访问同一应用程序时,Android 上的浏览??器应用程序确实为同一应用程序提供了一个位置,但当我从 WAN 断开连接时,并且连接到仅限本地的 LAN 并加载相同的页面,然后 navigator.geolocation.getCurrentPosition 似乎不起作用。
想法?已知的禁令?调试此问题的方法? (我们在设备本身上没有一个很好的 javascript 调试器……有没有办法伪造这个设备在桌面上的响应方式?)
提前致谢
我认为您的问题在于地理位置;因为它不仅仅用于 GPS。我知道您将 enableHighAccuracy 设置为 true;如果设备有 GPS,它应该强制 GPS,但取决于浏览器如何实现 getCurrentPosition;如果没有可连接的地理位置数据库,它可能会拒绝工作。
您可以尝试将 maximumAge 设置得非常高以使用缓存数据或将超时设置为零强制 GPS 或类似的东西;但您可能无法在所有 Android 浏览器中获得一致的结果。
其实;我有点惊讶你有这个问题。我确定我阅读了描述离线场景的 W3C Geolocation API 规范中的用户案例。您应该尝试显示从 PositionError 接口返回的数据,看看是否可以获得更多信息。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/268745.html