wp8首次发布

时间:2014-02-10 18:01:30

标签: windows-phone-8 isolatedstorage

我正在编写一个wp8应用程序,我想在第一次启动应用程序时加载一个页面,之后它再也不会出现了,我现在谷歌搜索了很长时间但仍然无法理解它,我在这个阶段只是一个初学者,仍然在学习。我不需要为此使用隔离存储,但尝试实现它是一个不同的故事。任何帮助将非常感谢。我不是要求任何人为我做这件事,我只是要求一些指导。

3 个答案:

答案 0 :(得分:4)

如果您只想在安装应用程序后启动任何页面,则可以在应用程序启动时执行此操作:

  private void Application_Launching(object sender, LaunchingEventArgs e)
    {
        IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
        if (IsolatedStorageSettings.ApplicationSettings.Contains("IsFirstTimeLaunched") && settings["IsFirstTimeLaunched"] == "true")
        {                   

            Uri nUri = new Uri("/MainPage.xaml", UriKind.Relative);
            RootFrame.Navigate(nUri);       
        }
        else
        {   settings["IsFirstTimeLaunched"] = "true" ;
            settings.Save();
            Uri nUri = new Uri("/FirstTimeLaunch.xaml", UriKind.Relative);
            RootFrame.Navigate(nUri);
        }           
    }

如果您在任何时候再次想要FirstTimeLaunch页面,也可以从应用内部删除此内容,假设您每30天要在启动时再次显示说明。

答案 1 :(得分:2)

至于指导 - 正如你所提到的,IsolatedStorage在这里是合适的。事实上,我认为IsolatedSotorageSettings最简单。

因此,当您的应用程序启动时,您应该确定它是否是第一次运行。 例如,您可以在App.xaml.cs修改方法Application_Launching,以便它检查IsolatedStorageSettings中是否存在特定的密钥 - 如果不存在 - 这意味着它是第一次运行并设置一个标志。

在您知道它是否是第一次运行(或不运行)之后,您可以尝试重定向导航。我认为已经很好地解释了on this blog

您还可以尝试从Loaded事件中的MainPage重定向(在这种情况下,您可以看到MainPage的闪烁) - 这取决于您想要实现的目标。

其他方式可能是 - 不是导航到特定页面 - 而是根据您的标志(如果是第一次运行)更改MainPage内容。

答案 2 :(得分:0)

APP加载后,在MainPage.xaml.cs中调用此方法

protected override void OnNavigatedTo(NavigationEventArgs e)
{
        if (!App.ViewModel.IsDataLoaded)
        {
            App.ViewModel.LoadData();                
        }

        IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
        if (IsolatedStorageSettings.ApplicationSettings.Contains("IsFirstTimeLaunched") && (string)settings["IsFirstTimeLaunched"] == "true")
        {

            NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));                
        }
        else
        {
            settings["IsFirstTimeLaunched"] = "true";
            settings.Save();
            NavigationService.Navigate(new Uri("/FirstLaunch.xaml", UriKind.Relative));
        }           
}