2012-07-25 105 views
2

使用Geolocator使用下面的代碼,我收到以下錯誤錯誤:'管道正在關閉' 在Windows 8地鐵JavaScript應用

the pipe is being closed 

the wait operation timed out 

代碼:

var loc = new Windows.Devices.Geolocation.Geolocator(); 
loc.getGeopositionAsync().done(function (pos) { 
    console.log(pos); 
}); 

我在Windows 8模擬器中運行這個,並嘗試使用模擬位置啓用d並禁用。

是什麼導致了這個錯誤,以及使用Geolocator在真實的GPS設備上和模擬器中成功檢索用戶位置的正確方式是什麼?

回答

0

在我的本地機器和模擬器上,您的代碼對我來說工作正常,在Windows 8 Release Preview上。

我在模擬器中測試了它,模擬位置都是打開和關閉。

有一件事要檢查......您的應用清單的功能部分中是否啓用了Location?

此外,您可能想嘗試將位置信息寫入屏幕......上面的代碼只是將pos對象傳遞給控制檯,所以實際上並不知道它是否返回了正確的地理位置信息,即使你會越過這個錯誤。

這裏就是我所做的:

  1. 開始一個新的空白的JavaScript應用程序。
  2. 打開default.html,並向包含默認內容的<p>標記添加一個「geo」標識。
  3. 下面的代碼到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可用,它應該用於位置數據透明地傳輸到您的應用程序。

+0

是的,這個錯誤和我的例子一樣。啓用了定位功能 – Predominant 2012-08-06 01:36:41

+0

哪條線拋出異常?使用W3C地理定位語法?雖然從開發者預覽開始我還沒有嘗試過,但我能夠成功地移植當時使用W3C語法編寫的一些代碼。 – devhammer 2012-08-06 01:55:27

+0

'navigator.geolocation.getCurrentPosition(success,failure);' 'function success(position){' 'console.log('您位於:'+ position.coords.latitude +','+ position.coords .longitude +'!');' '}' – devhammer 2012-08-06 02:02:55

相關問題