我在位置服务中有以下代码:
.factory('Location', function($q, $ionicLoading) {
return {
getCurrentPosition: function() {
var deferred = $q.defer();
$ionicLoading.show({template: 'Getting Location...'});
navigator.geolocation
.getCurrentPosition(
function (data) {
$ionicLoading.hide();
deferred.resolve(data);
},
function (error) {
var data = 'Error getting current position.';
$ionicLoading.hide();
deferred.reject(data);
},
{timeout:5000, enableHighAccuracy:false});
return deferred.promise;
}
}
}
我使用PhoneGap Build来构建项目,然后在我的iPhone5上安装。
一切正常,直到我关闭位置服务:
我希望在5秒后发生超时并显示错误。但是,我的应用程序只是挂起。没有触发任何想法超时?
答案 0 :(得分:0)
这是一个语法问题。
我上面的简化代码没有包含这种错误的语法:
var data = {};
switch(error.code) {
//...error message code here
}
data.push({errorCode: error.code,
errorMessage: errorMessage});
我修改了这个:
switch(error.code) {
//...error message code here
}
var data = {errorCode: error.code,
errorMessage: errorMessage};