在Windows Phone 8应用程序中,我需要切换初始视图,而不是始终使用相同的PhoneApplicationPage打开应用程序。如果设置已存在则为主页;如果用户是第一次打开应用程序,则为设置页面。
我应该怎么做?
目前我采用的方式是:
WMAppManifest.xml中的默认任务为空
<DefaultTask Name="_default" />
决定在Application_Launching事件处理程序中移动到哪个页面。
private void Application_Launching(object sender, LaunchingEventArgs e)
{
if (SettingFileExists())
RootFrame.Navigate(new Uri("Home.xaml", UriKind.Relative));
else
RootFrame.Navigate(new Uri("Settings.xaml", UriKind.Relative));
}
这是接近这种情况的最佳方式吗?我的代码有任何潜在问题吗?
答案 0 :(得分:1)
有许多不同的方法可以做到这一点而没有一种“最佳”方式。
我个人的偏好是使用在启动时执行重定向的自定义UriMapper
E.g。
设置自定义UriMapper:
RootFrame.UriMapper = new MyUriMapper();
然后在UriMapper中检查特殊的uri并采取适当的措施:
public class MyUriMapper : UriMapperBase
{
public override Uri MapUri(Uri uri)
{
if (uri.OriginalString == "/StartUp")
{
if (!this.dataOperations.IsLoggedIn())
{
return Login.Path;
}
else
{
return Main.Path;
}
}
return uri;
}
}