Linkedin – iOS – 检测用户取消login

我有链接在OAuthStarterKit运行和工作(networking视图很慢!)基本视图带有一些基本的代码来检测何时popupweb视图closures(见下面的函数)。

问题是,当用户点击取消button时,他们无法检测到他们提交Linkedinlogin页面。 url: https://www.linkedin.com/uas/oauth/www.core.mehttps://www.linkedin.com/uas/oauth/www.core.me

我将如何去过滤“取消”页面?

能看到错误

过滤/closures代码

 - (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType { NSURL *url = request.URL; NSString *urlString = url.absoluteString; addressBar.text = urlString; [activityIndicator startAnimating]; BOOL requestForCallbackURL = ([urlString rangeOfString:linkedInCallbackURL].location != NSNotFound); if ( requestForCallbackURL ) { BOOL userAllowedAccess = ([urlString rangeOfString:@"user_refused"].location == NSNotFound); if ( userAllowedAccess ) { [self.requestToken setVerifierWithUrl:url]; [self accessTokenFromProvider]; } else { // User refused to allow our app access // Notify parent and close this view [[NSNotificationCenter defaultCenter] postNotificationName:@"loginViewDidFinish" object:self userInfo:nil]; [self dismissModalViewControllerAnimated:YES]; } } else { // Case (a) or (b), so ignore it } return YES; } 

回答!

这是我最终在我的代码中使用! 希望它可以帮助别人!

 - (void)webViewDidFinishLoad:(UIWebView *)mwebView { [activityIndicator stopAnimating]; NSString *html = [mwebView stringByEvaluatingJavaScriptFromString: @"document.body.innerHTML"]; if ([html rangeOfString:@"Page Not Found"].location != NSNotFound) { // This could be any string - I used "Page Not Found" [[NSNotificationCenter defaultCenter] postNotificationName:@"loginViewDidFinish" object:self userInfo:nil]; [self dismissModalViewControllerAnimated:YES]; } }