facebook loginbutton sdk в сбое приложения С#

Мне нужна небольшая помощь, я создал небольшое приложение physioit для Windows Phone 8.

Я добавил кнопку входа facebookclient в свой файл xaml. Теперь, когда на моем телефоне нет подключения для передачи данных и когда я запускаю код, он выдает мне TargetInvocationException, и мое приложение вылетает.

Вот исключение, которое я получаю -

innerException 
{Facebook.WebExceptionWrapper: The remote server returned an error: NotFound. --->
      System.Net.WebException: The remote server returned an error: NotFound.
 at System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
 at System.Net.Browser.ClientHttpWebRequest.<>c__DisplayClasse.<EndGetResponse>b__d(Object sendState)
 at System.Net.Browser.AsyncHelper.<>c__DisplayClass1.<BeginOnUI>b__0(Object sendState)
--- End of inner exception stack trace ---}           

System.Exception     {Facebook.WebExceptionWrapper}

Как я могу поймать это исключение?

Я использую facebook sdk для создания кнопки входа

Вот фрагмент кода

<facebookControls:LoginButton
    x:Name="loginButton"
    Grid.Row="2"
    Margin="5"
    HorizontalAlignment="Right"
    FetchUserInfo="True"      
    ApplicationId="xxxxxx" 
    SessionStateChanged="OnFacebookSessionStateChanged"
    UserInfoChanged="OnFacebookUserInfoChanged"
    AuthenticationError="LoginButtonAuthenticationError" />

Не могли бы вы мне помочь?


person Nipun    schedule 28.09.2013    source источник
comment
Хороший улов, это странно. Я полагаю, что это не должно вызывать сбой приложения по дизайну. Вы сообщили о проблеме на github.com/facebook-csharp-sdk /facebook-csharp-sdk/issues? Два возможных обходных пути: 1) не использовать кнопку входа в систему для входа в систему 2) не прикреплять ApplicationId, пока вы не будете уверены, что есть подключение к Интернету (сложно)   -  person Igor Ralic    schedule 28.09.2013
comment
Просто предположение - убедитесь, что вы включили все возможности, которые требуются facebook sdk, в вашем файле wmappmanifest.xml.   -  person Alex Sorokoletov    schedule 18.12.2013


Ответы (1)


Вы можете использовать NetworkInterface, чтобы проверить, доступно ли подключение для передачи данных, а затем разрешить кнопке входа выполнять свое действие.

Что-то вроде этого..

if(System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable())
//Allow login button
else
//Message user - no internet connection
person stackamar    schedule 12.02.2014