HTML/CSS/JS と WinJS フレームワークを使用して、Windows ストア用のアプリに取り組んでいます。
私のアプリは、オンラインの場合はネットワーク経由、そうでない場合はローカルのいずれかで、起動時に構成データをロードする必要があります。
私の問題は、理想的には、データが読み込まれるまで、アプリはプログレス コントロール付きのスプラッシュ スクリーンを表示するだけでよいということです。しかし、それを達成するためにロードコードをどこに置くべきかわかりません。
私はこのようなことができます:
(function () {
"use strict";
WinJS.Binding.optimizeBindingReferences = true;
var app = WinJS.Application;
var activation = Windows.ApplicationModel.Activation;
var nav = WinJS.Navigation;
function loadConfig() {
return WinJS.xhr({ url: myURL }).then(
function (xhr) {
// parse response stuff
},
function (xhr) {
// do error handling stuff
}
);
}
function initializeUI(args) {
// The generated code for setting up the navigation controller, but moved to a seperate function
args.setPromise(WinJS.UI.processAll().then(function () {
if (nav.location) {
nav.history.current.initialPlaceholder = true;
return nav.navigate(nav.location, nav.state);
} else {
return nav.navigate(Application.navigator.home);
}
}));
}
app.onactivated = function (args) {
if (args.detail.kind === activation.ActivationKind.launch) {
if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {
loadConfig().then(
function () {
initializeUI(args);
}
);
}
if (app.sessionState.history) {
nav.history = app.sessionState.history;
}
if ( config ) // check if configuration exists to prevent calling this twice
initializeUI(args)
}
};
app.start();
})();
しかし、それではデータが読み込まれるまで「default.html」ページが表示されるため、「default.html」でスプラッシュ イメージを使用し、進行状況コントロールを挿入する必要があります。
それは私の問題の正しい解決策のように感じませんか?