設定ペインの SettingsFlyout コントロールにエントリを実装しました。ページ自体にはドロップダウンが含まれています。ユーザーがこのドロップダウンから選択したオプションは、ローミング データ ストアに保存する必要があります。明らかに、この保存されたデータは、ユーザーが設定ペインでこのページにアクセスするたびに取得する必要があります。データのステージングと取得のためにこのコードを記述するのに最適な場所がわかりません。SettingsFlyout オブジェクトに onafterhide、onaftershow、onbeforehide、および onbeforeshow イベントがあることがわかります。これらのいずれかをこの目的に使用する必要がありますか?
2 に答える
設定フライアウトで変更された設定は、フライアウトが非表示になるまで待つのではなく、ユーザーが変更を行うとすぐに有効になる必要があります。フライアウトをページ コントロールとして扱うことをお勧めします。
設定フライアウトが で定義されていると仮定してsettings/mySettings.html
、という名前の JavaScript ファイルを作成し、settings/mySettings.js
設定ページの先頭でそれを参照します。次に、次のコードをスクリプト ファイルに追加します。
(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 関数でページを初期化します。ナビゲーション アプリ テンプレートに慣れている場合は、同じです。
[Windows.Storage.ApplicationData.Current.localSettings] ( http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.applicationdata.aspx ) または roamingSettings は、取得/設定の組み込みサポートを提供しますキーと値のペアを設定します。また、アプリケーション データ フォルダー内のファイルへの永続化も処理します。また、ドキュメントに従って必要なバッチ処理も行います。
参照コードはアプリケーション データ サンプルにあります。
var roamingSettings = Windows.Storage.ApplicationData.current.roamingSettings;
function settingsWriteSetting() {
roamingSettings.values['my setting'] = 'my setting value';
}
フライアウトのイベントについて - ユーザー フロー全体で、フライアウトが非表示になる前後に何らかのアクションを実行するために使用できるイベントがあります。たとえば、サインイン フライアウトに関する Promise を作成したことがあります。afterhide
promise のエラー コールバックを呼び出すために使用され、エラーはキャンセルされました。