您的代码在我的本地机器和模拟器上的 Windows 8 Release Preview 上都可以正常工作。
我在模拟器中对它进行了测试,同时打开和关闭了模拟位置。
要检查的一件事...您是否在应用清单的“功能”部分中启用了位置?
此外,您可能想尝试将位置信息写入屏幕...上面的代码只会将 pos 对象传递给控制台,因此即使您通过错误。
这是我所做的:
- 从一个新的空白 JavaScript 应用开始。
<p>
打开 default.html,并在包含默认内容的标签中添加一个“geo”的 id 。
将以下代码添加到 app.onactivated 处理程序以进行测试(我在右大括号之前添加了我的代码:
var loc = new Windows.Devices.Geolocation.Geolocator();
loc.getGeopositionAsync().done(function (pos) {
console.log(pos);
var geo = document.getElementById("geo");
geo.innerText = pos.coordinate.latitude + ", " + pos.coordinate.longitude;
});
我正在测试的机器是一台没有 GPS 的笔记本电脑,因此底层 API 将使用 WiFi 或 IP 地址信息进行地理定位。如果 GPS 可用,它应该用于对您的应用透明的位置数据。