Chrome地理位置定位在任何网站上都无法工作。

10 浏览
0 Comments

Chrome地理位置定位在任何网站上都无法工作。

我想基于地理位置信息构建一个网站,考虑使用HTML5的地理定位功能。我已经构建了W3C的代码,但在谷歌浏览器上无法正常工作。我注意到在谷歌浏览器上,所有在线示例都无法正常工作,包括以下链接:\nhttp://www.w3schools.com/html/html5_geolocation.asp\nhttp://html5demos.com/geo\n奇怪的是,我确实看到了询问是否允许访问位置信息的提示,但之后就无法正常工作了。我检查了我的Chrome设置,已经设置为“询问是否允许网站访问位置信息”。然而,在同一台机器上的Safari浏览器却可以正常工作。\n我使用的是iMac(2012年末版)和Mavericks系统,如果这有助于解决问题的话。\n谢谢!\n编辑:\n我已经尝试了这个解决方案:W3C Geolocation API not working in Chrome

0
0 Comments

Chrome浏览器在任何网站上都无法使用地理定位的原因是,非安全的地理定位已经被弃用。根据w3c.github.io上的“https://w3c.github.io/webappsec-secure-contexts/”中的概念,我们希望将已经发布但不符合新要求的功能应用到已经发行的功能上。具体来说,这要求功能只能在“安全源”(如HTTPS)上访问,其中完整的祖先链也是安全的。现在我们希望从现有功能开始要求安全源:

- 地理定位 - 自M50起需要安全源

- 设备运动/方向

- EME

- getUserMedia

- AppCache

与逐渐将HTTP标记为不安全一样,我们预计会根据使用情况的阈值逐步将这些功能迁移到仅安全源上,从使用最少的开始,逐步向使用较多的方向迁移。我们还希望逐步在用户体验中指示这些功能对于非安全源是弃用的。对于每个功能的弃用策略尚未决定,可能会因功能而异。我们目前不知道阈值将是什么,也不知道这些功能在不同类型的源上的使用情况。我们正在收集数据,并将在收集到数据后进行报告。目前还没有任何明确的计划,只是最终会弃用。我们希望这能够引发关于最佳弃用方法的公开讨论。因此,我们非常愿意听取社区的意见。

在功能被弃用后,如果你是一个需要在没有有效证书的服务器上继续测试功能的开发者,你有两个选择:

- localhost在HTTP上被视为安全源,所以如果你能够从localhost运行你的服务器,你应该能够在该服务器上测试该功能。

- 你可以使用“--unsafely-treat-insecure-origin-as-secure="http://example.com"”标志运行Chrome(将"example.com"替换为你实际想要测试的源),这将在此会话中将该源视为安全。请注意,你还需要包括“--user-data-dir=/test/only/profile/dir”来创建一个新的测试配置文件,以使标志起作用。

参考资料:

- Deprecating Powerful Features on Insecure Origins: https://www.chromium.org/Home/chromium-security/deprecating-powerful-features-on-insecure-origins

- Removal of geolocation from insecure origins: https://bugs.chromium.org/p/chromium/issues/detail?id=561641

0