我發展我和使用我rails 5
應用的html5 geolocation
:的Rails:localhost更改:3000到https://
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。即使是本地主機。
解決方案是在開發中使用其他瀏覽器或通過HTTPS提供Rails服務。
有人可以給我指示如何在開發中通過HTTPS提供Rails嗎?
在我看來,簡單地使用其他瀏覽器是最簡單的選擇。 –
是的,我同意@Sergio Tulentsev!唯一的問題是,當我部署它時它會與safari一起工作嗎?因爲我現在無法測試它! – Theopap
這取決於您的操作系統和設置。特別是你使用的是什麼Rails服務器。基本上你必須創建一個自簽名證書(PEM)並將其信任在操作系統中。 https://gist.github.com/tadast/9932075 – max