我正在构建一个应用程序,我需要获取用户的位置。为此,我在按钮上附加了一个点击事件,然后调用
navigator.geolocation.getCurrentPosition(getVenues, handleError);
此操作在Chrome和Firefox上正常运行,getVenues
功能在我授予对我的位置的访问权限后运行。在Safari上,在授予访问权限后立即调用handleError
函数。
在我的本地服务器和生产服务器上都会发生这种情况,两者都使用HTTPS。我的电脑是wifi连接。 Safari版本9.1.2(11601.7.7)。我查看了一些与Safari中的Geolocation相关的其他帖子,到目前为止还没有一个解决方案。
我尝试将选项传递给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);
}
单击该按钮会启动地理位置访问请求,但在单击“接受”后立即调用handleError
函数,错误代码为2(位置不可用)。
我需要检查Safari Geolocation还有其他问题/错误/陷阱吗?