繁体   English   中英

地理位置无法在移动设备上使用,但可以在我的台式机上使用

[英]The geolocation isnt working on mobile but works on my desktop

我正在尝试在我的项目上实现地理位置,我已经拥有api和东西,所有必需的代码,但是在移动设备上,只要我尝试访问该位置,它就会显示并在google地图上显示错误,并显示“错误:地理位置服务失败。 ” 但在我的桌面上它可以正常工作。

这里的代码

原本希望在我的台式机上发生同样的事情,提示要求访问gps的权限,但没有任何反应

@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交付框架进行Polyfill。)

在Google开发者网站上的回复

如果您想使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM