HighPriority Setting in Windows Store

Introduction

In this article I describe how to create a Windows Store App for HighPriorty Setting using JavaScript. The High Priority setting is designed to transition time-critical data more rapidly between devices. This is for information like user context.

To use this setting, name one setting "HighPriority" and the system will automatically take care of the roaming frequency. The HighPriority setting can be a composite setting. This app demonstrates writing to the HighPriority setting, and responding to the data changed notification of incoming roaming data. Run the app on two machines using the same connected account to observe the roaming.

I assume you can create a simple Windows Store App using JavaScript. For more help visit Simple Windows Store Apps using JavaScript.

To start the creation of the app, add one JavaScript page by right-clicking on the js folder in the Solution Explorer and select Add > new item > JavaScript Page and then give an appropriate name. In the same way, add one HTML page to your project.

highpreority-in-windows-store-apps.jpg

Write the following code in default.html:
 

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8" />

    <title>App</title>

    <link rel="stylesheet" href="//Microsoft.WinJS.1.0/css/ui-light.css" />

    <script src="//Microsoft.WinJS.1.0/js/base.js"></script>

    <script src="//Microsoft.WinJS.1.0/js/ui.js"></script>

    <link rel="stylesheet" href="/css/default.css" />

    <script src="/js/script.js"></script>

    <script src="/js/default.js"></script>

</head>

<body role="application" style="background-color: lightcoral">

    <center><div id="rootGrid">

        <div id="content">

            <h1 id="featureLabel"></h1>

            <div id="contentHost"></div>

        </div>

         </div></center>

</body>

</html>


Write the following code in default.js:

(function () {

    "use strict";

    var appTitle = "";

    var pages = [

        { url: "page.html", title: "SetVersion" }

    ];

    function activated(eventObject) {

        if (eventObject.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.launch) {

            eventObject.setPromise(WinJS.UI.processAll().then(function () {

                var url = WinJS.Application.sessionState.lastUrl || pages[0].url;

                return WinJS.Navigation.navigate(url);

            }));

        }

    }

    WinJS.Navigation.addEventListener("navigated", function (eventObject) {

        var url = eventObject.detail.location;

        var host = document.getElementById("contentHost");

        host.winControl && host.winControl.unload && host.winControl.unload();

        WinJS.Utilities.empty(host);

        eventObject.detail.setPromise(WinJS.UI.Pages.render(url, host, eventObject.detail.state).then(function () {

            WinJS.Application.sessionState.lastUrl = url;

        }));

    });

    WinJS.Namespace.define("App", {

        appTitle: appTitle,

        pages: pages

    });

    WinJS.Application.addEventListener("activated", activated, false);

    WinJS.Application.start();

})();


Write the following code in page.html:

<!DOCTYPE html>

<html>

<head>

    <title></title>

    <link rel="stylesheet" href="/css/default.css" />

    <script src="/js/script.js"></script>

</head>

<body>

    <div data-win-control="App.pageInput" style="background-color: lightpink">

        <button id="incrementHighPriority">Increment</button>

    </div>

    <div data-win-control="App.pageOutput">

        <div class="item" id="highPriorityOutput"></div>

    </div>

</body>

</html> 


Write the following code in script.js:

(function () {

    "use strict";

    var page = WinJS.UI.Pages.define("page.html", {

        ready: function (element, options) {

            document.getElementById("incrementHighPriority").addEventListener("click", incrementHighPriority, false);

            Windows.Storage.ApplicationData.current.addEventListener("datachanged", roamingDataChangedHandler);

            highPriorityDisplayOutput(false);

        },

        unload: function () {

            Windows.Storage.ApplicationData.current.removeEventListener("datachanged", roamingDataChangedHandler);

        }

    });

    var roamingSettings = Windows.Storage.ApplicationData.current.roamingSettings;

    function incrementHighPriority() {

        var counter = roamingSettings.values["HighPriority"] || 0;

 

        roamingSettings.values["HighPriority"] = counter + 1;

 

        highPriorityDisplayOutput(false);

    }

 

    function roamingDataChangedHandler() {

        highPriorityDisplayOutput(true);

    }

 

    function highPriorityDisplayOutput(remoteUpdate) {

        var counter = roamingSettings.values["HighPriority"] || 0;

 

        document.getElementById("highPriorityOutput").innerHTML = "Counter: " + counter + (remoteUpdate ? " (updated remotely)" : "");

    }

})(); 


Output:

highpreority-in-windows-store-app.jpg

Summary

In this app I described HighPriorty Setting in Windows Store Apps using JavaScript. I hope this article has helped you to understand this topic. Please share if you know more about this. Your feedback and constructive contributions are welcome.


Similar Articles