应用程序设置存储到漫游数据存储中

时间:2013-06-19 20:06:53

标签: javascript windows-8 windows-runtime winjs application-settings

我在SettingsFlyout控件中为设置窗格实现了一个条目。页面本身包含一个下拉列表。用户从此下拉列表中选择的任何选项都需要存储在漫游数据存储中。显然,只要用户在设置窗格中访问此页面,就需要检索此存储的数据。我不确定为数据阶段和检索编写此代码的最佳位置是什么?我看到SettingsFlyout对象有onafterhide,onaftershow,onbeforehide和onbeforeshow事件。是否应将其中任何一个用于此目的?

2 个答案:

答案 0 :(得分:1)

设置弹出窗口中更改的设置应在用户进行更改后立即生效,而不是等到弹出窗口被隐藏。我建议将你的弹出窗口视为页面控件。

假设您的设置弹出窗口已在settings/mySettings.html中定义,请创建名为settings/mySettings.js的JavaScript文件,并在设置页面的头部引用它。然后将以下代码添加到脚本文件中。

(function () {
    "use strict";

    var page = WinJS.UI.Pages.define("/settings/mySettings.html", {
        ready: function (element, options) {
            // wire up event handlers for saving changes
            // setup initial state
        },
    });
})();

与任何其他页面控件一样,您可以添加事件处理程序并在ready函数中初始化页面。如果您熟悉导航应用程序模板,则它是相同的。

答案 1 :(得分:1)

[Windows.Storage.ApplicationData.Current.localSettings](http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.applicationdata.aspx)或roamingSettings为获取/设置设置键值对提供内置支持。它还处理应用程序数据文件夹中的文件持久化。它还需要根据文档进行批处理。

您可以在application data sample

中找到参考代码
var roamingSettings = Windows.Storage.ApplicationData.current.roamingSettings;
function settingsWriteSetting() { 
    roamingSettings.values['my setting'] = 'my setting value'; 
} 

问候,弹出窗口上的事件 - 可以使用事件在隐藏弹出窗口之前/之后采取一些操作 - 在整个用户流程中。例如 - 我曾经在一个登录弹出窗口周围创建了一个Promise。 afterhide用于调用promise的错误回调,错误被取消。