我正在尝试编写一个返回表示设备位置的对象的函数: 我试过了:
function getDevicePosition () {
var positionObject;
if (isDeviceReady) {
navigator.geolocation.getCurrentPosition(function (position) {
;
positionObject = position;
console.log('location updated');
console.log(positionObject.coords.longitude);//1. works
}, function (err) {
console.log('Failed to get device position' + err);
return null;
});
} else {
warnUser();
return null;
}
console.log(positionObject.coords.longitude);//2. doesnt work as positionObject is null.
return positionObject;
}
也许我应该重新解释一下我的问题。请注意,我添加了注释语句1和语句2.如果我在语句1中初始化了位置对象。为什么在语句2中未定义?
答案 0 :(得分:1)
根据android
标记判断我假设您正在Android设备上进行测试。
如果是这种情况,您需要在AndroidManifest.xml
文件中添加正确的权限。
<强> Specifially 强>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.CONTROL_LOCATION_UPDATES" />
阅读更多here。