Для создания нового проекта нужно пройти меню File ➤ New Project ➤ Templates ➤ JavaScript ➤ Windows ➤ Universal ➤ Blank App (Universal Windows).
Далее появится окно в котором надо выбрать целевую и минимальную необходимую версию:
Шаблон проекта включает в себя папки css, images и js:
Откроем index.html и поменяем его содержимое на следующее:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>HelloWorldAppWithUWP</title> <link href="css/default.css" rel="stylesheet" /> </head> <body> <div>Hello World!</div> <script src="js/main.js"></script> </body> </html>
Для того чтобы собрать приложение нужно нажать Ctrl+Shift+B или выбрать меню Build ➤ Build solution.
Visual Studio предлагает следующие опции для запуска UWP-приложения:
Для запуска приложения нужно нажать F5.
Чтобы запускать UWP-приложения на устройстве нужно включить Developer mode для это нужно пройти в меню Settings ➤ Update & security ➤ For developers.
исходный код
UPD: В данном примере я создал Blank App (Universal Windows), при таком шаблоне библиотека WinJS не добавляется в проект. Для того чтобы библиотека WinJS добавилась в проект нужно создать по шаблону WinJS App (Universal Windows). Тогда в файле js/main.js будет следующая заготовка:
Visual Studio предлагает следующие опции для запуска UWP-приложения:
Для запуска приложения нужно нажать F5.
Чтобы запускать UWP-приложения на устройстве нужно включить Developer mode для это нужно пройти в меню Settings ➤ Update & security ➤ For developers.
исходный код
UPD: В данном примере я создал Blank App (Universal Windows), при таком шаблоне библиотека WinJS не добавляется в проект. Для того чтобы библиотека WinJS добавилась в проект нужно создать по шаблону WinJS App (Universal Windows). Тогда в файле js/main.js будет следующая заготовка:
// For an introduction to the Blank template, see the following documentation: // http://go.microsoft.com/fwlink/?LinkId=232509 (function () { "use strict"; var app = WinJS.Application; var activation = Windows.ApplicationModel.Activation; var isFirstActivation = true; app.onactivated = function (args) { if (args.detail.kind === activation.ActivationKind.voiceCommand) { // TODO: Handle relevant ActivationKinds. For example, if your app can be started by voice commands, // this is a good place to decide whether to populate an input field or choose a different initial view. } else if (args.detail.kind === activation.ActivationKind.launch) { // A Launch activation happens when the user launches your app via the tile // or invokes a toast notification by clicking or tapping on the body. if (args.detail.arguments) { // TODO: If the app supports toasts, use this value from the toast payload to determine where in the app // to take the user in response to them invoking a toast notification. } else if (args.detail.previousExecutionState === activation.ApplicationExecutionState.terminated) { // TODO: This application had been suspended and was then terminated to reclaim memory. // To create a smooth user experience, restore application state here so that it looks like the app never stopped running. // Note: You may want to record the time when the app was last suspended and only restore state if they've returned after a short period. } } if (!args.detail.prelaunchActivated) { // TODO: If prelaunchActivated were true, it would mean the app was prelaunched in the background as an optimization. // In that case it would be suspended shortly thereafter. // Any long-running operations (like expensive network or disk I/O) or changes to user state which occur at launch // should be done here (to avoid doing them in the prelaunch case). // Alternatively, this work can be done in a resume or visibilitychanged handler. } if (isFirstActivation) { // TODO: The app was activated and had not been running. Do general startup initialization here. document.addEventListener("visibilitychange", onVisibilityChanged); args.setPromise(WinJS.UI.processAll()); } isFirstActivation = false; }; function onVisibilityChanged(args) { if (!document.hidden) { // TODO: The app just became visible. This may be a good time to refresh the view. } } app.oncheckpoint = function (args) { // TODO: This application is about to be suspended. Save any state that needs to persist across suspensions here. // You might use the WinJS.Application.sessionState object, which is automatically saved and restored across suspension. // If you need to complete an asynchronous operation before your application is suspended, call args.setPromise(). }; app.start(); })();