在UWP中安装应用程序时只显示一次页面
我正在开发一个UWP窗口10应用程序,并且我想要一个只在启动应用程序第一次启动时显示的页面。当应用程序在系统中第二次打开时不应显示。在UWP中安装应用程序时只显示一次页面
我已经在网上搜索了一下,但是找不到任何关于它的事情。
我知道,我的回答可以提炼更多,但我有花2分钟,其工作对我来说完成。我在我的StartPage.xaml.cs文件中添加了页面加载事件,并在其中添加了以下代码。
if (localSettings.Values["IsFirstTime"] == null)
{
localSettings.Values["IsFirstTime"] = true;
}
if ((bool)localSettings.Values["IsFirstTime"])
{
localSettings.Values["IsFirstTime"] = false;
this.Frame.Navigate(typeof(MainPage));
}
请确保您在类级别(ApplicationDataContainer类型)上创建localSettings对象。现在在App.xaml.cs中,我为本地设置添加了全局变量,如下所示。
Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
app.xaml.cs文件里面来显示rootFrame.Content == NULL的,如果条件和下面的代码替换里面的每一件事情。
object value = localSettings.Values["IsFirstTime"];
if (localSettings.Values["IsFirstTime"] != null)
{
if ((bool)value)
{
rootFrame.Navigate(typeof(StartPage), e.Arguments);
localSettings.Values["IsFirstTime"] = false;
}
else
{
rootFrame.Navigate(typeof(MainPage), e.Arguments);
}
}
else
{
rootFrame.Navigate(typeof(StartPage), e.Arguments);
localSettings.Values["IsFirstTime"] = false;
}
我已经通过卸载我的应用程序试了一下,然后再次运行,看看是否显示起始页(和它显示了)。第二次,当我打开,MainPage显示)。
在App.xaml.cs
寻找OnLaunched
处理程序。有几行代码为“开关”的网页:
if (rootFrame.Content == null)
{
rootFrame.Navigate(typeof(MainPage), e.Arguments);
}
由于@Romasz的意见建议,你可以与当地的添加在这里的附加逻辑(或更好 - 漫游)存储来检查应用程序是否首次启动时间:
var roamingSettings = ApplicationData.Current.RoamingSettings;
if (roamingSettings.Values.ContainsKey("NotFirstTimeLaunch"))
{
rootFrame.Navigate(typeof(MainPage), e.Arguments);
} else
{
roamingSettings.Values["NotFirstTimeLaunch"] = true;
rootFrame.Navigate(typeof(FirstLaunchPage), e.Arguments);
}
+1,但我不确定是否不会在* FirstLaunchPage的*加载事件中的某个位置设置设置的值 - 以防导航失败。虽然这是非常罕见的情况。 – Romasz
我想你可以像这样实现它 - 在负责这个的localsettings中声明变量,让我们说* IsFirstTime * - 它应该是带缺省假值的布尔值。然后在app.xaml.cs中查找负责导航到MainPage的代码,如果它不是true,请检查您的IsFirstTime值,导航到您的一次性页面,如果为true,则导航到MainPage。 – Romasz
你能解释一下,本地设置是什么意思? –
请查看[此MSDN网站](https://msdn.microsoft.com/en-us/windows/uwp/app-settings/store-and-retrieve-app-data) - 您可以轻松找到更多信息,通过谷歌搜索'localsettings uwp'。 – Romasz