C# Windows Phone-通过app.xaml.cs导航服务
我正在制作一个应用程序,如果你无法从服务器获得响应连接,你会被重定向到一个特殊页面,该页面会告诉你“没有互联网连接你就不能使用你的应用程序” 我通过几个页面和位置使用API请求,从所有这些页面和位置,我都希望得到相同的结果——重定向到那个特殊页面。(所以我不想在调用api请求时使用相同的行为放置try-catch) 现在,我抛出异常,我的想法是在C# Windows Phone-通过app.xaml.cs导航服务,c#,wpf,xaml,windows-phone-8,visual-studio-2013,C#,Wpf,Xaml,Windows Phone 8,Visual Studio 2013,我正在制作一个应用程序,如果你无法从服务器获得响应连接,你会被重定向到一个特殊页面,该页面会告诉你“没有互联网连接你就不能使用你的应用程序” 我通过几个页面和位置使用API请求,从所有这些页面和位置,我都希望得到相同的结果——重定向到那个特殊页面。(所以我不想在调用api请求时使用相同的行为放置try-catch) 现在,我抛出异常,我的想法是在 private void Application_UnhandledException(object sender,ApplicationUnhand
private void Application_UnhandledException(object sender,ApplicationUnhandledExceptionEventArgs e)
那个里有很多例外,但现在我不知道如何从那个点重新引导你们
如果你认为这是“不对的”,也请告诉我。但是,该应用程序不能脱机运行
(我正在使用Windows Phone 8.0)
编辑:从那一点开始导航是不可能的,应用程序会删除:)受保护的覆盖无效OnNavigatedTo(NavigationEventArgs e) { if(NetworkInterface.GetIsNetworkAvailable()) { 你的代码。。。。 } 其他的 { MessageBox.Show(“未找到internet连接…请与您的运营商联系…”); }
}您是否尝试过从那里简单地重定向?也就是说,从未处理的异常回调调用
NavigationService.Navigate()
,尽管您可能希望在此之前确保自己处于UI线程中:Deployment.Current.Dispatcher.BeginInvoke((操作)(()=>{NavigationService.Navigate(新Uri(“/NetworkErrorPage.xaml”,UriKind.RelativeOrAbsolute)))
抱歉,在发布评论之前没有阅读您的编辑。不过,BeginInvoke
是否有帮助?@jlahd-dispatcher的观点很好,但是即使我什么也不做,并且我用该方法评论任何代码,应用程序也会自动删除。如果我想使用您的方法,我必须与另一个方法合并(因为在app.xaml.cs中您不能使用NavigationService.Navigate
):Deployment.Current.Dispatcher.BeginInvoke((操作)(()=>{(Application.Current.RootVisualAs PhoneApplicationFrame.Navigate(新Uri(“/NoConnection.xaml”,UriKind.RelativeOrAbsolute));}))
是否设置了e.Handled=true
?如果没有设置,系统将终止应用程序。@jlahd-tx,确实是这样。但是,即使我将其设置为true并将其重定向到该页面,它看起来已经足够破坏了应用程序,我可以看到“noconnection页面”,但它不会对任何事情做出反应。