我正在开发并使用html5 geolocation
应用中的rails 5
:
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(setGeoCookie);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function setGeoCookie(position) {
var cookie_val = position.coords.latitude + "|" + position.coords.longitude;
document.cookie = "lat_lng=" + escape(cookie_val);
}
它与firefox
以及除safari
以外的所有浏览器一起正常运行。使用safari
时,allow pop up
不会显示。
我做了一些调查,发现..... safari(与Chrome和Firefox不同)不允许通过HTTP协议访问地理位置 - 只有HTTPS。即使是localhost。
解决方案是在开发中使用其他浏览器或通过HTTPS提供Rails。
有人可以指点我在开发中如何通过HTTPS提供Rails吗?
答案 0 :(得分:3)
通过https提供Rails的最简单方法是使用ngrok。它只是提供到localhost的安全隧道。非常容易使用
答案 1 :(得分:0)
您也可以使用 cloudflared https://github.com/cloudflare/cloudflared,它是免费的,并且没有 ngrok 必须经常更改域的任何限制。
答案 2 :(得分:-1)
您可以在application.rb
config.force_ssl = true
或者正如Nwocha建议你也可以使用ngrok。