2010-01-14 5 views
5

게시 데이터를 보내고 get 요청을 사용하는 것처럼 UIWebView로로드되는 웹 사이트를 제어해야합니다. 각 요청 후에 응답은 문자열로 변수에로드되어야합니다.iPhone SDK : 프로그래밍 방식으로 UIWebView의 웹 사이트를 제어하십시오.

이유는 공개 웹 API가없고 쿠키 기반 사용자 인증을 사용하는 웹 사이트에서 데이터를 가져 오려고하기 때문입니다. 따라서 사용자에게 로그인하고 해당 사이트에서 일부 데이터를 가져 와서 결과를 표시하려고합니다.

이와 비슷한가요?

는 편집 : 난 그냥을 stringByEvaluatingJavaScriptFromString 방법 을 가로 질러왔다. 이 메서드를 사용하여 JS로 UIWebView 내의 내용을 제어 할 수 있습니까? 웹 양식을 제출하고 페이지가로드되고 응답 데이터가 완료 될 때까지 기다리십시오.

편집 2 : 그냥이 가능 ASIHTTPRequest

답변

2

물론 도움이 될 수있는 프레임 워크를 발견했다. 네트워킹 코드를 직접 작성한 다음 결과 HTML을 UIWebView에 덤프하십시오. 또한 브라우저를 제어하기 위해 자바 스크립트를 사용할 수 염두에 두어야

NSURLResponse *response = nil; 
NSError *error = nil; 
NSData *respData = [NSURLConnection sendSynchronousRequest:request 
             returningResponse:&response 
                error:&error]; 
NSString *respString = [[[NSString alloc] initWithData:respData 
               encoding:NSUTF8StringEncoding] autorelease]; 

NSString *htmlString = [self doSomethingWith:respString]; 

[webView loadHTMLString:htmlString baseURL:@"http://stackoverflow.com"]; 

: 당신이 그것을 표시하기 전에 응답을 처리하려면

// Do your POST 
NSURL *url = [NSURL URLWithString:"http://stackoverflow.com"]; 
NSString *body = @"laadeedaa"; 

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 
[request setHTTPMethod: @"POST"]; 
[request setHTTPBody: [body dataUsingEncoding:NSUTF8StringEncoding]]; 

// Dump the response to the UIWebView 
[webView loadRequest:request]; 

, 당신은의 라인을 따라 뭔가를 할 것입니다 :

- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script 
+0

빠른 답장을 보내 주셔서 감사합니다. NSMutableURLRequest가 인증 웹 쿠키를 처리합니까? 아니면 그냥 화재와 같이 요청을 보내고 잊을까요? – dan

+1

나는 정직 해야할지 모르겠다. 나는 지난 6 개월 동안 MonoTouch를 사용 해왔다. 애플은 좋은 문서를 가지고있다. 그렇지 않으면 새로운 SO 질문을 엽니 다. –

관련 문제