Safari 中的 html5 地理定位错误
Posted
技术标签:
【中文标题】Safari 中的 html5 地理定位错误【英文标题】:html 5 geo location bug in Safari 【发布时间】:2014-02-09 21:06:44 【问题描述】:我使用 html5 地理定位和本地存储制作网站,我使用的是 JS,在大多数浏览器中一切正常,但我在使用 Safary 时遇到了一些问题:
解释如下:
单击按钮时,我想为用户获取 GEO 位置,将其保存在本地存储中,稍后检索信息并将其发送到电子邮件。 我放了一些警报来验证正确的功能。
你们中的任何人都可以帮助我了解原因并找到解决方案吗?
感谢您的帮助
代码如下:
(function ($)
$(document).ready(function ()
function localitaionGPS(obj)
var obj;
function getLocation()
if (navigator.geolocation)
navigator.geolocation.getCurrentPosition(showPosition);
else
alert("Votre navigateur ne suporte pas la Geolocalisation :(");
function showPosition(position)
var maPosition = " position : latitude: " + position.coords.latitude + " longitude: " + position.coords.longitude;
if(typeof(Storage)!=="undefined")
var dateHeure, anne, mois, jour, heure, minute,seconde;
dateHeure = new Date();
anne = dateHeure.getFullYear();
mois = dateHeure.getMonth()+1;
jour = dateHeure.getDate();
heure = dateHeure.getHours();
minutes = dateHeure.getMinutes();
secondes = dateHeure.getSeconds();
if (heure < 10)heure = "0"+heure;
if (minute < 10) minute = "0"+minutes;
if (secondes < 10)secondes = "0"+secondes;
var laDate = jour +"/"+ mois +"/"+ anne +"_"+heure +"h"+ minutes +":" +secondes;
// to verify the data
alert (laDate + "_"+ maPosition);
localStorage['gpsPosition'+laDate] = laDate+"_espece : "+obj+ "_"+ maPosition;
else
alert("Votre navigateur ne suporte pas le local storage :(");
getLocation();
var i=0;
$('.btnGeo').on("click",function ()
var src = $(this).attr("data-objet");
localitaionGPS(src);
)
// rest of code to retrieve and errase the local store data.
$('.getDatos').on("click",function ()
var datos = [];
for(var i=0; i<localStorage.length; i++)
var strKey = localStorage.key(i);
var strVal = localStorage.getItem(strKey)+" ; ";
datos.push(strVal);
$('#message').val(datos);
);
$('.cleanDatos').on("click",function ()
localStorage.clear();
);
);)(jQuery);
【问题讨论】:
【参考方案1】:您没有告诉我们您的开发人员工具栏输出是什么,所以我不太确定您的错误在哪里。 不过..
getCurrentPosition 有两个回调,第一个是成功回调,第二个是错误回调。例如,如果在浏览器上禁用地理定位或从浏览器/设备后端抛出某种形式的错误,则将调用第二个回调。尝试添加第二个回调并在您遇到问题的设备/浏览器上对其进行测试,以接收有关问题的更多信息。
编辑: 顺便说一句,getCurrentPosition 还有第三个参数,它是一个对象,其中包含一个告诉定位服务何时超时的属性。如果您希望能够管理超时而不是让设备处理它,这会很有用。
【讨论】:
Thaks Mattias 我会听从您的建议。我使用的唯一库是 jquery。这将是一个必须离线工作的网站,所以我提到了使用另一个工具。以上是关于Safari 中的 html5 地理定位错误的主要内容,如果未能解决你的问题,请参考以下文章