Javascript 地理位置获取用户权限时超时
我正在使用js获取用户地理位置,并希望解决以下场景: 我已经设法完成了1~4次,但5次出现问题 主要的问题是我不知道浏览器什么时候开始获取位置 谢谢 ps:我使用的api位于Javascript 地理位置获取用户权限时超时,javascript,geolocation,Javascript,Geolocation,我正在使用js获取用户地理位置,并希望解决以下场景: 我已经设法完成了1~4次,但5次出现问题 主要的问题是我不知道浏览器什么时候开始获取位置 谢谢 ps:我使用的api位于Geolocation.getCurrentPosition() ---情景--- 如果用户之前选择了地理位置权限,则在获取位置时给它5秒的超时时间 如果用户单击“拒绝”,则立即返回null 如果用户单击“允许”,则让浏览器在5秒超时后获取地理位置 如果用户忽略了“允许/拒绝”提示,请给它5秒的超时时间(思考时间),并在用户
Geolocation.getCurrentPosition()
---情景---
我最终使用$q.defer.notify方法 当用户忽略提示超时时,首先通知消费代码 然后,当用户在超时之前单击“允许”时,仍然在后台加载地理位置,并使用“通知”再次告知用户已成功获取地理位置的代码
api.getGeoLocation = function() {
var getGeoPromise = $q(function(resolve, reject){
//give the timeout for user to decided
var geoPromptTimout = $timeout(function(){
reject();
}, GEO_LOCATION_USER_PROMPT_TIMEOUT);
$window.navigator.geolocation.getCurrentPosition(function(pos){
$timeout.cancel(geoPromptTimout);
resolve(pos);
}, function(positionError) {
$timeout.cancel(geoPromptTimout);
reject();
}, {
timeout: GEO_LOCATION_ACQUIRE_TIMEOUT,
maximumAge: GEO_LOCATION_CACHED_AGE
});
});
return getGeoPromise;
};