Safari 9中的地理位置始终返回“位置不可用”

时间:2016-09-07 14:38:59

标签: javascript safari geolocation

我正在构建一个应用程序,我需要获取用户的位置。为此,我在按钮上附加了一个点击事件,然后调用

navigator.geolocation.getCurrentPosition(getVenues, handleError);

此操作在Chrome和Firefox上正常运行,getVenues功能在我授予对我的位置的访问权限后运行。在Safari上,在授予访问权限后立即调用handleError函数。

在我的本地服务器和生产服务器上都会发生这种情况,两者都使用HTTPS。我的电脑是wifi连接。 Safari版本9.1.2(11601.7.7)。我查看了一些与Safari中的Geolocation相关的其他帖子,到目前为止还没有一个解决方案。

我尝试将选项传递给getCurrentPosition以增加timeoutmaximumAge,但没有运气。

这是我的完整代码示例:

$("#nearby-find").on('click', function() {
  navigator.geolocation.getCurrentPosition(getVenues, handleError);
});

var getVenues = function(position) {
  console.log(position);
};

var handleError = function(error) {
  console.log(error);
}

单击该按钮会启动地理位置访问请求,但在单击“接受”后立即调用handleError函数,错误代码为2(位置不可用)。

我需要检查Safari Geolocation还有其他问题/错误/陷阱吗?

1 个答案:

答案 0 :(得分:0)

Safari不在“系统偏好设置”的“启用位置服务”列表中的应用列表中。您需要进入系统偏好设置>安全与安全隐私>隐私选项卡,并确保Safari位于启用位置服务列表中。

enter image description here