检查JavaScript代码是否在WinStore(WinJS)应用程序中运行

时间:2015-05-27 22:58:54

标签: javascript winjs

我正在开发一个可以在Windows应用商店(WinJS)应用程序和常规用户中使用的JS库。 HTML / JS应用程序。我使用的其中一个依赖项(动态加载它)有两个不同的SDK,一个用于WinJS应用程序,另一个用于"常规"网站,所以我需要知道我是否在WinJS应用程序中运行以加载正确的网站。

我可以尝试找出是否存在某些特定于Windows的库(类似下面的代码),但我想知道是否有更清洁的"找出代码运行环境的方法。有这种方法可以说出来吗?

function isWinJS() {
    return typeof Windows === 'object' &&
        typeof Windows.UI === 'object' &&
        typeof Windows.UI.Popups === 'object' &&
        typeof Windows.UI.Popups.MessageDialog === 'function';
}

1 个答案:

答案 0 :(得分:2)

命名空间检测是WinJS如何确定它是在Windows还是Web上运行的。我建议看看它如何系统地处理这些问题。您可以使用https://github.com/winjs/winjs(当前版本)上的代码执行此操作,或者查看仅在Windows上使用的WinJS 1.0或2.0,因为检测更简单一些。在这些版本中,需要检测,因为WinJS可以加载到WinRT不可用的应用程序中的Webview或Web上下文中。我所知道的一个例子是实现WinJS sessionState对象。