我正在为手机开发Windows 8应用程序,并使用“导航应用程序”创建了一个新项目。模板,因为我想在我的应用程序中使用几页。
默认的首页是home.html,如default.html中所述:
<body class="phone">
<div id="contenthost" data-win-control="Application.PageControlNavigator" data-win-options="{home: '/pages/home/home.html'}"></div>
</body>
我想查看我正在保存的数据
Windows.Storage.ApplicationData.current.localFolder
在应用完成加载之前。 取决于数据结果,我想继续home.html或导航到另一个页面。
我的想法是在&#39; splash&#39;中处理我需要的所有内容。时间然后除去哪个页面加载。我不确定在Win Phone开发中是否可行。
我虽然最好的地方是onloaded事件中的default.js文件,但我有2个问题:
尝试从加载到另一个页面导航似乎无法正常工作。该应用程序始终进入home.html
获取数据是异步的,因此应用程序会在获取数据并能够检查之前继续加载。
app.onloaded = function (args) {
var storageFolder = Windows.Storage.ApplicationData.current.localFolder;
storageFolder.getFileAsync('settings.txt').then(
function (file) {
if (file) {
Windows.Storage.FileIO.readTextAsync(file).then(function (contents) {
if (contents.length > 0 && contents != '{}') {
var settingsObj = JSON.parse(contents);
if ('id' in settingsObj && settingsObj.id > 0) {
//Go to Home
WinJS.Navigation.navigate('/pages/home/home.html');
return;
}
}
//Go To Login
WinJS.Navigation.navigate('/pages/login/login.html');
});
}
},
function (e) {
storageFolder.createFileAsync('settings.txt');
}
);
};
答案 0 :(得分:0)
您可以尝试将该代码放在正常加载默认页面的app.xaml.cs中。
检查应用程序数据以查找您要查找的内容,然后使用if语句查看结果是否满足您的要求,例如
if(true)
{
Frame.Navigate(typeof(MainPage));
}else
{
Frame.Navigate(typeof(AnotherPage));
}