Win Phone 8应用程序加载页面导航

时间:2016-01-06 12:33:57

标签: javascript authentication windows-phone-8 windows-phone-8.1

我正在为手机开发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');
        }
    );
    };
    

1 个答案:

答案 0 :(得分:0)

您可以尝试将该代码放在正常加载默认页面的app.xaml.cs中。

检查应用程序数据以查找您要查找的内容,然后使用if语句查看结果是否满足您的要求,例如

if(true)
{
   Frame.Navigate(typeof(MainPage));
}else
{
   Frame.Navigate(typeof(AnotherPage));
}