我正在尝试在我的项目上实现地理位置,我已经拥有api和东西,所有必要的代码,但是在移动设备上,只要我尝试访问该位置,它就会显示并在Google地图上显示错误,并显示“错误:地理位置服务失败。”但是在我的桌面上它可以正常工作。
原本希望在我的桌面上发生同样的事情,出现提示,要求获得访问gps的权限,但什么也没发生
答案 0 :(得分:1)
@Pedro Teixeira-如果您是通过网络服务器而不是本地HTML页面运行此应用程序。这就是为什么它不适合您的原因。
如果您的站点不是HTTPS或您所调用的地理定位页面不是HTTPS,为什么地理定位将不起作用? Chrome公开表示有意弃用诸如非安全来源上的地理位置之类的强大功能,我们希望其他人也能效仿。
从Chrome 50开始,Chrome不再支持使用HTML5地理位置API从非安全连接提供的页面中获取用户的位置。这意味着进行Geolocation API调用的页面必须从HTTPS之类的安全上下文中提供。
这是一个重要的问题,因为它将直接影响需要使用地理位置API且未通过https进行投放的任何网站,但我们相信此更改对网络上的所有用户都是有益的。这篇文章应该可以帮助您了解原因以及如何进行。
自此更改生效之后? 此更改自Chrome 50(太平洋标准时间2016年4月20日中午12点)开始生效。
我们为什么要进行此更改? 位置是敏感数据!需要HTTPS来保护用户位置数据的隐私。如果可以从非安全上下文中获得用户的位置,则网络上的攻击者将能够知道该用户的位置。这严重损害了用户隐私。
这会影响谁? 这会影响通过HTTP(非安全)提供的页面中当前使用Geolocation API的任何页面。如果它们嵌入在HTTP页面中,也会影响使用Geolocation API的HTTPS iframe。 (您将无法使用共享的HTTPS交付框架进行填充。)
在Google Developer Site上的回复
如果您想使用HTML5 Geolocation API,或者您的站点已经在使用Geolocation API,请将将Geolocation API调用的页面迁移到HTTPS,以确保在安全的上下文中使用它们。
有许多后备选项可用于获取不受此更改影响的用户位置,例如Google Maps Geolocation API,GeoIP(例如,还有其他基于地理的解决方案)以及用户输入的邮政编码。但是,我们强烈建议确保持续访问地理位置的最佳途径是转到HTTPS。
请点击此链接以获取更多信息 https://developers.google.com/web/updates/2016/04/geolocation-on-secure-contexts-only