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 上不起作用