如何檢測到環境是來自Javascript的Windows 8 Metro應用程序?如何從Javascript中檢測Win8/Metro
更新:爲了澄清,我的Javascript代碼可以在任何瀏覽器上運行,也可以作爲Win8應用程序的一部分運行。由於Win8應用程序對JS代碼施加了安全限制,因此我想檢測代碼在Win8應用程序中運行的時間。
如何檢測到環境是來自Javascript的Windows 8 Metro應用程序?如何從Javascript中檢測Win8/Metro
更新:爲了澄清,我的Javascript代碼可以在任何瀏覽器上運行,也可以作爲Win8應用程序的一部分運行。由於Win8應用程序對JS代碼施加了安全限制,因此我想檢測代碼在Win8應用程序中運行的時間。
回答自己:
一種方法來檢測,這是檢查一些MS特定的對象或命名空間的存在。其中之一是Windows。例如:
if (typeof Windows != "undefined") {
// Running in Win8 app
} else {
// Running in a browser
}
我想你可以使用:
WorkerNavigator.useragent
屬性來檢測它
你到底有什麼建議?該屬性的存在對Win8/Metro來說是一個很好的測試,或者應該看一下useragent的內容?聽起來不可靠。 – Kyberias
嗯,yea屬性測試比useragent相比更好一些 –
我用這個代碼:
var isWinJS = !!window.Windows && /^ms-appx:/.test(location.href);
您也可以嘗試檢測WinRT命名空間(它們在JS中投影爲對象)的存在 - 最值得注意的是根「Windows」命名空間。 –
有人可以看到什麼'({})。toString.call(Windows)'是?這可能是一個更強大的檢測。 –