2011-10-18 22 views
7

Tôi đang cố gắng tải UIWebView bằng URL ủy quyền OAuth của Facebook và tôi đang sử dụng mã sau đây. Khi số UIWebView tải của tôi với trang đăng nhập Facebook, tôi nhập thông tin đăng nhập của mình, sau đó nhấn nút "Đăng nhập". Khi tôi nhấn nút Tôi nhận được lỗi sau:Lỗi mới trong iOS 5: WebKit đã loại bỏ một ngoại lệ không bắt buộc

WebKit discarded an uncaught exception in the webView:decidePolicyForNavigationAction:request:frame:decisionListener:delegate: Application tried to present modally an active controller .

Mã này hoạt động tốt với iOS 4.3 và các phiên bản trước nhưng không hoạt động trong iOS 5.0. Tôi không hiểu vấn đề, có ai giúp tôi không?

NSString *redirectUrlString = @"http://www.facebook.com/connect/login_success.html"; 
NSString *authFormatString = @"https://graph.facebook.com/oauth/authorize?client_id=%@&redirect_uri=%@&scope=%@&type=user_agent&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]; 

Trả lời

22

Bạn đang sử dụng mã Ray Wenderlich? (FBFunLoginDialog) .. Tôi thấy rằng điều này sửa lỗi:

-(void)checkLoginRequired:(NSString *)urlString { 
    NSLog(@"Url: %@",urlString); 
    if ([urlString rangeOfString:@"login.php"].location != NSNotFound && [urlString rangeOfString:@"refid"].location == NSNotFound) { 
      [_delegate displayRequired]; 
    } else if ([urlString rangeOfString:@"user_denied"].location != NSNotFound) { 
     [_delegate closeTapped]; 
    } 
} 
+0

Cảm ơn bạn rất nhiều Karl Goodhew! –

+0

Cảm ơn nó đã giúp tôi cũng ... :) chúc mừng ... :) :) –

+0

bây giờ tôi nhận được lỗi này phải làm gì xin vui lòng giúp bảo mật CẢNH BÁO: "Hãy xử lý URL ở trên như bạn sẽ mật khẩu của bạn và không chia sẻ nó với bất cứ ai.Tôi tìm kiếm rất nhiều trên mạng nhưng không có gì hoạt động một số nói url thay đổi từ http đến https và một số nói trong tài khoản facebook vô hiệu hóa duyệt web an toàn nhưng tất cả những điều này không làm việc. –

0

Tôi có cùng một vấn đề. Tôi cố gắng trình bày bộ điều khiển xem ngay sau khi loại bỏ.

[self dismissModalViewControllerAnimated:YES]; 

Khi tôi cố gắng làm điều đó mà không có hoạt ảnh, nó hoạt động hoàn hảo. use dismissViewControllerAnimated: completion:

Các vấn đề liên quan