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

Bre*_*ody 6 javascript safari geolocation

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

navigator.geolocation.getCurrentPosition(getVenues, handleError);
Run Code Online (Sandbox Code Playgroud)

这在 Chrome 和 Firefox 上按预期工作,并且该getVenues函数在我授予对我的位置的访问权限后运行。在 Safari 上,授予访问权限后handleError会立即调用该函数。

这种情况发生在我的本地服务器和生产服务器上,它们都使用 HTTPS。我的电脑有 wifi 连接。Safari 版本 9.1.2 (11601.7.7)。我浏览了一些与 Safari 中的地理定位相关的其他帖子,但到目前为止,没有一个解决方案有效。

我尝试过传递选项来getCurrentPosition增加timeout但maximumAge没有运气。

这是我的完整代码示例:

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

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

var handleError = function(error) {
  console.log(error);
}
Run Code Online (Sandbox Code Playgroud)

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

我需要检查 Safari 地理定位是否存在其他问题/错误/陷阱?

Bre*_*ody 3

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

在此输入图像描述