我有一些代码如下,它获取当前位置,然后创建一个包含该信息的变量。我想在函数之外使用该变量,但到目前为止我尝试过的所有内容都失败了。如果它在函数内,则下面的警报可以工作,但只要你把它放在外面它就是空白。我也尝试在alloy.js中创建全局变量,但这似乎也没有用。我知道这很简单但需要更多的想法:)
Titanium.Geolocation.getCurrentPosition(function(e) {
if (e.error) {
alert('Error: ' + e.error);
} else {
var params = {
latitude: e.coords.latitude,
};
return params;
}
});
alert(params);
答案 0 :(得分:3)
这与Titanum无关,而是一个基本的javascript问题。
params
是一个局部变量(在getCurrentPosition中)。您可以创建如下全局范围:
var coords;
Titanium.Geolocation.getCurrentPosition(function(e) {
if (e.error) {
alert('Error: ' + e.error);
} else {
coords = {
latitude: e.coords.latitude,
longitude: e.coords.longitude,
};
}
});
但请记住:coords可能不会立即设置,因为在getCurrentPosition函数完成或拥有数据之前可能需要一些时间。