약 1 시간 전에이 문제를 해결할 수있었습니다.
먼저 UIWebView 또는 WebView를 사용하지 마십시오. 대신 WKWebView을 사용하십시오. 당신이 볼
, 당신은
- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(null_unspecified WKNavigation *)navigation withError:(NSError *)error
이 REDIRECT_URL에 인스 타 그램의 로그인 페이지로 전달하면, 그것은 이동하지 못한 방법을 구현해야합니다. 아마도 우리는 서버 측 인증을 수행하지 않고 클라이언트 측 인증 만 수행하고 redirect_url은 유효한 URL이 아니기 때문일 수 있습니다. 우리는 잘못된 URL로 리디렉션 페이지를 기대하고 있지만 그렇게하면, WKWebView는 방법
- (void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation
또는 방법
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation
겠어요 -를 호출하지 않습니다 첫 번째 방법에 초점을 맞추고 변수 error
을 확인하고 error.userInfo
을 추출하면됩니다.
- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(null_unspecified WKNavigation *)navigation withError:(NSError *)error
{
NSURL *err = [error.userInfo objectForKey:@"NSErrorFailingURLKey"];
if([err.absoluteString hasPrefix:INSTA_REDIRECT_URL]){
NSString *token = [[err.absoluteString componentsSeparatedByString:@"#access_token="] objectAtIndex:1];
[Utils saveToken:token];
[self.webView setHidden:YES];
//open next view controller
}else{
//TODO: No internet? something else went wrong..
NSLog(@"Error: %@", error);
}
}
는 희망이 도움이 : 내 경우
이 내가 문제를 해결하는 방법입니다. 행운을 빈다. ;)
이 오류가 표시 될 때 강제로 리디렉션 할 수 있습니까? – Shubhank
이 문제를 해결할 수 있습니까? – Borzh
아니요, 완전히 아닙니다. webView의 shouldStartLoadWithRequest가 약간의 지연이 발생하면이 버그 발생 빈도가 줄어든 것을 관찰했습니다. –