当询问浏览器访问当前位置的权限时,确定用户是忽略浏览器提示还是选择“不立即”选项的最佳方法是什么?
这种情况似乎没有触发超时。
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
currentLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
callback();
}, function() {
currentLocation = default_location;
callback();
},{timeout: 5000});
}
我现在使用的解决方案是使用currentLocation的默认位置,并在用户回答浏览器提示时触发其中一个回调时刷新页面/视图。
答案 0 :(得分:3)
根据HTML5 geolocation规范,用户执行操作后,您指定的5秒超时才会开始。
请注意,获取用户权限所花费的时间不包括在timeout属性所涵盖的时间段内。超时属性仅适用于位置获取操作。
第二个回调函数应该在用户在浏览器中单击“拒绝”时立即触发,但如果用户忽略提示并让它坐下,则不会触发任何内容。传统的实现方式是假设用户没有地理位置功能,并且不会单击提示,将其更多地用作增强而不是必需的功能。
或者,你可以设计一个页面来帮助指导用户采取行动,通过“点击此处”文本投掷一个黑暗的div屏蔽整个页面。