geolocation chrome 50+的本地开发

Posted

技术标签:

【中文标题】geolocation chrome 50+的本地开发【英文标题】:Local development of geolocation chrome 50+ 【发布时间】:2017-03-10 19:12:21 【问题描述】:

我正在开发一个网站,该网站需要通过 MACOSX 上的本地开发环境使用 navigator.geolocation 对象。我正在使用 Chrome 53。考虑到地理位置在任何非 HTTPS 上都被阻止,我想如何在本地开发我的网站? Google Developers 网站引用:

这会影响本地发展吗?

不应该,localhost 已被声明为“潜在安全” 规范,在我们的例子中,地理定位请求在顶层提供 通过 localhost 仍然可以工作。

这是我所看到的:

Geolocation console warnings

有什么想法吗? (除了切换浏览器)

【问题讨论】:

您可以使用about://flags 而不是传递命令参数。这是在 android 的 Google Chrome 上执行此操作的方法。 【参考方案1】:

http://localhost 被视为安全来源,因此您无需执行任何操作,Geolocation 将起作用。

如果您使用另一个指向 localhost 的主机名(例如:http://mysite.test),那么您应该使用以下选项从命令行运行 chrome:--unsafely-treat-insecure-origin-as-secure="http://mysite.test"

示例

google-chrome --unsafely-treat-insecure-origin-as-secure="http://yoursite.test"

更多详情请关注Deprecating Powerful Features on Insecure Origins

【讨论】:

在我的 Mac 上我没有 google-chrome 符号链接,所以我使用了 open -a /Applications/Google\ Chrome.app' --args --unsafely-treat-insecure-origin-as-secure="http://yoursite.test"【参考方案2】:

使用file: 协议。启动带有--allow-file-access-from-files 标志的chrome,请参阅Jquery load() only working in firefox?。在Settings 选择Content settings,滚动到Location,选择Ask when a site tries to track your physical location (recommended)

【讨论】:

【参考方案3】:

这个问题的答案是在 XAMPP 中设置 VirtualHost 以使用 SSL 引擎。这个问题已经在这里回答了:How do I use https (SSL) in XAMPP while using virtual hosts

这将允许 Geolocation 在使用 XAMPP 的本地开发环境中通过 HTTPS 运行。

【讨论】:

以上是关于geolocation chrome 50+的本地开发的主要内容,如果未能解决你的问题,请参考以下文章

navigator.geolocation.getCurrentPosition() 没有从 googleapi 得到响应

Chrome navigator.geolocation.getCurrentPosition() 错误 403

navigator.geolocation.getCurrentPosition 不在 chrome 中工作

navigator.geolocation.getCurrentPosition 在 firefox 和 chrome 之间返回不同?

Google Maps Javascript GeoLocation - 不适用于 Chrome

navigator.geolocation.getCurrentPosition 在 android google chrome 上不起作用