Может ли Javascript обнаруживать UWP?

70
10

Я создаю небольшую игру, используя NodeJS и EaselJS, которая отлично работает в браузере, локально размещенная. Я загрузил Visual Studio и начал процесс создания UWP, чтобы я мог играть на своем Xbox One. Visual Studio - это, по сути, только средний человек, поскольку я использую "Стартовую страницу" и указываю на свой локально размещенный веб-сервер для создания приложения, а не пытаюсь изобрести колесо.

Я хотел бы воспользоваться некоторыми функциями Windows.UI ТОЛЬКО КОГДА он запускается как приложение Window/Xbox, в частности способность Overscan для отображения на телевизоре. До сих пор мне не удалось заставить JS обнаружить тип выполнения. я добавил

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

но когда я запускаю его в обычном браузере ol, я получаю ошибку ссылки Windows, которая не определена. Я также пробовал

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

что делает версию браузера работоспособной, но тесты на развертывание в Visual Studio тоже не видят (я поставил вывод консоли для отладки, чтобы убедиться).

Возможно ли иметь лучшее из обоих исполнений миров, или мне нужно пройти полный курс и разработать конкретную версию игры в VS, чтобы получить то, что я хочу?

спросил(а) 2017-05-18T23:24:00+03:00 3 года, 4 месяца назад
1
Решение
58

Догадаться. Решение if (typeof) является частично правильным, поэтому указывает на то, что Shawn. То, что я не смог сделать, это включить WinRT Access в URI в appxmanifest внутри Visual Studio. Как только я сказал, что на самом деле искать Windows на стороне приложения, я получаю свой вывод отладки и экран масштабируется соответствующим образом. Спасибо, что посмотрели в любом случае!

ответил(а) 2017-05-19T02:47:00+03:00 3 года, 4 месяца назад
41

Я могу думать о двух возможных вариантах. Сначала проверьте тип объекта:

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

Во-вторых, объявите переменную Windows перед проверкой. Это нормально, чтобы переопределить переменную в javascript. Он не будет отменять оригинал.

var Windows;
if(Windows)
{
}

ответил(а) 2017-05-19T02:07:00+03:00 3 года, 4 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема