我使用Foursquare api调用编写了一个iOS应用程序。在检查场地时,我必须通过我们的服务器通过Foursquare身份验证。我们的服务器在我们的数据库中捕获授权令牌,并通过网页中的DIV元素返回access_token。
在我的iPhone应用程序中,我可以在webView中看到此网页。我可以看到访问令牌。 现在我想做以下事情: (1)从webView的值中提取访问令牌 (2)关闭webView并返回我的应用程序。
我使用了以下代码:
- (void)webViewDidFinishLoad:(UIWebView *)webView {
accessToken = [self.webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('accesstoken').value"];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:accessToken forKey:@"access_token"];
[defaults synchronize];
[self dismissModalViewControllerAnimated:YES];
}
然而这不起作用。谁能给我一些线索?
提前感谢你们。
为akdotcom添加:我也尝试了以下内容:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
accessToken = [self.webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('accesstoken').value"];
if([accessToken length] > 0){
NSLog(@"--> %@", accessToken);
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:accessToken forKey:@"access_token"];
[defaults synchronize];
[[UIApplication sharedApplication] openURL:request.URL];
return NO;
}
return YES;
}