あなたのコードは、Windows 8 Release Preview のローカル マシンとシミュレーターの両方で問題なく動作します。
シミュレートされた場所をオンとオフの両方でシミュレーターでテストしました。
1 つ確認していただきたいのは、アプリ マニフェストの Capabilities セクションで Location が有効になっているかどうかです。
また、位置情報を画面に書き込んでみることもできます...上記のコードは pos オブジェクトをコンソールに渡すだけなので、エラー。
これが私がしたことです:
- 新しい空の JavaScript アプリから始めます。
- default.html を開き
<p>、デフォルト コンテンツを含むタグに「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 が利用可能な場合は、アプリに対して透過的に位置データに使用する必要があります。