我想向我的用户显示他需要使用MessageBox为应用程序建立Internet连接。当他点击OK我想退出应用程序而不使用BackButton 这是代码
try
{
response = (HttpWebResponse)request.EndGetResponse(asyncResult);
}
catch (Exception e)
{
System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() =>
{
MessageBoxResult m = MessageBox.Show("Потребна е Интернет конекција");
if (m == MessageBoxResult.OK)
{
while (NavigationService.BackStack.Any())
NavigationService.RemoveBackEntry();
//base.OnBackKeyPress(new System.ComponentModel.CancelEventArgs());
NavigationService.GoBack();
}
});
}
但是,应用程序未退出正在尝试连接到Web服务
由于
答案 0 :(得分:1)
如@willmel所述,您的用户体验与Windows Phone不一致。微软的Peter Torr有一个很好的,如果有点老,blog post为什么这是一个坏主意(从用户体验的角度来看)以及如何设计你的接口,这样就不必以编程方式退出应用程序。
答案 1 :(得分:0)
应用无法以编程方式关闭,也无法通过认证。您需要重新考虑用户体验。
例如,您可以提示相同的消息,并禁用应用程序的所有控件,以便用户通过后退按钮自行离开应用程序。
此外,请保持MessageBoxResult.None
,这是按下硬件后退按钮以关闭对话框的结果。 (它看起来不像你在代码中处理它)
答案 2 :(得分:0)
我不建议您依靠捕获错误来解决您想要做的事情。你会有很多误报。手机有一个API,用于确定网络是否可用。在MainPage.xaml.cs中执行以下操作:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
if (DeviceNetworkInformation.IsNetworkAvailable == false)
{
MessageBox.Show("No network! Try again later.");
}
else
{
// Logic that would happen if they had connection, maybe you show controls
// here that might not be displayed w/o a connection
}
}