【问题标题】:Can Javascript detect UWP?Javascript 可以检测 UWP 吗?
【发布时间】:2017-10-18 19:45:29
【问题描述】:

我正在使用 NodeJS 和 EaselJS 构建一个小游戏,该游戏在本地托管的浏览器中运行良好。我下载了 Visual Studio 并开始使用它创建 UWP,这样我就可以在我的 Xbox One 上玩了。 Visual Studio 基本上只是中间人,因为我使用“起始页”并将其指向本地托管的 Web 服务器来创建应用程序,而不是尝试重新发明轮子。

我想仅在它作为 Window/Xbox 应用程序运行时利用某些 Windows.UI 功能,特别是在电视上显示的 Overscan 功能。到目前为止,我一直无法让 JS 检测执行类型。我添加了

if (Windows)
{
    Windows.UI.ViewManagement.ApplicationView.getForCurrentView() ...
}

但是当我在常规的 ol 浏览器中运行它时,我得到一个 Windows 未定义的参考错误。我也试过了

if(typeof Windows !== 'undefined'){....

这使得浏览器版本工作正常,但 Visual Studio 中的部署测试也看不到它(我放置了一个调试控制台输出以确保)。

是否有可能实现两全其美的执行,还是我需要全力以赴并在 VS 中开发特定版本的游戏以获得我想要的?

【问题讨论】:

  • if(typeof Windows != 'underfined')怎么样

标签: javascript visual-studio uwp xbox-one


【解决方案1】:

想通了。 if(typeof) 解决方案是部分正确的,所以指向那里 Shawn。我没有做的是在 Visual Studio 的 appxmanifest 中包含对 URI 的 WinRT 访问。一旦我告诉它在应用程序端实际查找 Windows,我就会得到我的调试输出并且屏幕正在适当地缩放。无论如何,谢谢你看看!

【讨论】:

    【解决方案2】:

    我能想到两种可能的选择。首先检查对象的类型:

    if(typeof Windows != 'undefined')
    {
    }
    

    其次,在检查之前声明一个变量Windows。在javascript中重新声明一个变量是可以的。它不会覆盖原来的。

    var Windows;
    if(Windows)
    {
    }
    

    【讨论】:

    • 正如我所提到的,我可以进行 typeof 检查,并且浏览器继续其愉快的方式,但是 UWP 部署也通过它而不是执行语句中的代码。如果我尽早声明 var 以安抚浏览器版本,它是否仍会在 if 语句内的 UI 声明中引发错误?因为这些都不存在,即使 Windows var 存在。
    • 已声明但未赋值的变量是undefined,但适用于 if 语句
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    • 2011-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    相关资源
    最近更新 更多