2014-08-29 87 views
0

我在做app,其中如果不能从服务器获得响应的连接,会被重定向到一个特殊的页面,它告诉你像“你不能没有互联网用户使用应用程式的东西的NavigationService连接”。的Windows Phone - 通过app.xaml.cs

我通过几页的地方,并从他们正在使用的API请求,我想同样的 - 重定向到特殊页面。 (所以我不希望把的try-catch具有相同的行为,每当我打电话API请求)

现在,我抛出异常,我的想法是“抓”这个异常的

private void Application_UnhandledException(object sender,ApplicationUnhandledExceptionEventArgs e) 

异常被扔在那里,但是现在我不知道,如何从这一点重定向你。

此外,如果你认为,这是“不对的”,让我知道了。但是,该应用程序应该不可离线操作。

(我使用的Windows Phone 8.0)


编辑:那么它是不可能从这一点导航,应用程序滴:)

+0

你有_tried_简单地从那里重定向?也就是说,从未处理的异常回调中调用'NavigationService.Navigate()',尽管在这之前你可能想确保你在UI线程上:'Deployment.Current.Dispatcher.BeginInvoke((Action)(()= > {NavigationService.Navigate(新的URI( “/ NetworkErrorPage.xaml”,UriKind.RelativeOrAbsolute))})' – jlahd 2014-08-29 06:31:18

+0

对不起,张贴评论之前没有看过你的编辑。尽管如此,它的'BeginInvoke'帮助? – jlahd 2014-08-29 06:32:30

+0

@jlahd - 对调度员来说很好,但即使我什么也不做,并且我在该方法中评论任何代码,应用程序都会丢失。如果我想使用你的方法,我必须与另一个方法合并(原因在app.xaml.cs中不能使用'NavigationService.Navigate'):'Deployment.Current.Dispatcher.BeginInvoke((动作)(()=> {(Application.Current.RootVisual如PhoneApplicationFrame).Navigate(新URI( “/ NoConnection.xaml”,UriKind .RelativeOrAbsolute));}));' – libik 2014-08-29 06:37:52

回答

1

保护覆盖无效的OnNavigatedTo(NavigationEventArgs E) { 如果(NetworkInterface.GetIsNetworkAvailable()){ 您 代码.... } 其他 { MessageBox.Show(“没有INT发现ernet连接...请与您的操作员核对......“); }}