#objective-c #ios #cocoa-touch #uiwebview #uiwebviewdelegate
#objective-c #iOS #cocoa-touch #uiwebview #uiwebviewdelegate
Вопрос:
Я пытаюсь загрузить a UIWebView
с помощью URL-адреса авторизации Facebook OAuth и использую следующий код. Когда я UIWebView
загружаю страницу входа в Facebook, я ввожу свои учетные данные, затем нажимаю кнопку «Войти». Когда я нажимаю кнопку, я получаю следующую ошибку:
WebKit отбросил неперехваченное исключение в WebView:decidePolicyForNavigationAction:request:frame:decisionListener:делегат: Приложение пыталось модально представить активный контроллер.
Этот же код отлично работает с iOS 4.3 и предыдущими версиями, но он не работает в iOS 5.0. Я не понимаю проблемы, кто-нибудь может мне помочь?
NSString *redirectUrlString = @"http://www.facebook.com/connect/login_success.html";
NSString *authFormatString = @"https://graph.facebook.com/oauth/authorize?client_id=%@amp;redirect_uri=%@amp;scope=%@amp;type=user_agentamp;display=touch";
NSString *urlString = [NSString stringWithFormat:authFormatString, _apiKey, redirectUrlString, _requestedPermissions];
NSURL *url = [NSURL URLWithString:urlString];
NSLog(@"NSURL: %@", urlString);
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[_webView loadRequest:request];
Ответ №1:
Используете ли вы код Рэя Вендерлиха? (FBFunLoginDialog).. Я обнаружил, что это исправляет это:
-(void)checkLoginRequired:(NSString *)urlString {
NSLog(@"Url: %@",urlString);
if ([urlString rangeOfString:@"login.php"].location != NSNotFound amp;amp; [urlString rangeOfString:@"refid"].location == NSNotFound) {
[_delegate displayRequired];
} else if ([urlString rangeOfString:@"user_denied"].location != NSNotFound) {
[_delegate closeTapped];
}
}
Комментарии:
1. Большое вам спасибо, Карл Гудхью!
2. теперь я получаю эту ошибку что делать пожалуйста, помогите ПРЕДУПРЕЖДЕНИЕ БЕЗОПАСНОСТИ: «Пожалуйста, относитесь к указанному выше URL-адресу так же, как к своему паролю, и не делитесь им ни с кем. я так много искал в сети, но ничего не работает, некоторые говорят, что измените URL-адрес с http на https, а некоторые говорят, что в учетной записи Facebook отключен безопасный просмотр, но все это не работает. любая помощь
Ответ №2:
У меня та же проблема. Я пытаюсь представить контроллер представления сразу после увольнения.
[self dismissModalViewControllerAnimated:YES];
Когда я пытаюсь сделать это без анимации, это работает отлично. используйте dismissViewControllerAnimated:завершение: