我试图在Iphone上使用html5地理定位,但它总是返回一个错误。
var win=函数(位置){alert(‘一切都好!’+位置)};
var fail=函数(e){alert('Can\not retrieve position.\n错误:'+e)};
navigator.geolocation.getCurrentPosition(获胜,失败);
我在IOS模拟器和我的设备上测试,但不起作用。在Safari上,我可以使用无线互联网连接(??)来获取我的位置。
有办法做到这一点吗
确保设备上的定位服务已为Safari打开。转到设置>隐私>位置服务>Safari并确保其设置为ON
。
然后试试这个代码:
function doGPS()
{
try{
//position request
navigator.geolocation.getCurrentPosition( function (position) {
alert(position.coords.latitude);
alert(position.coords.longitude);
});
}
catch(evt)
{
alert(evt.message);
}
}
我使用过appMobi的js,如果我在iPhone上的Safari中重新加载网站,它会很好地工作。然而,主屏幕书签应用程序并不能做到这一点(即使我在网络应用程序上为新版本添加书签)。
新的js加载到带书签的应用程序中很好(每次更新代码时,我都会添加一条带有新提示的弹出消息,只是为了确保网络应用程序正在加载新js),如果我想允许网站进行检查,iPhone会提示我,但当我同意时,什么也没发生。而在Safari中,它显示lat/long。
有人有类似的问题吗?
UPDATE:它有效,但只有当你第一次加载页面时——第二次加载时,它会显示"start",但不会显示lat/long。。。
if (navigator.geolocation) {
alert('Geolocation is supported!');
}
else {
alert('Geolocation is not supported for this Browser/OS version yet.');
}
try{
//position request
alert('start');
navigator.geolocation.getCurrentPosition( function (position) {
alert(position.coords.latitude);
alert(position.coords.longitude);
});
}
catch(evt)
{
alert('fail'+evt.message);
}