2014-11-07 2 views
1

오전있는 UIWebView에 HTML 페이지를로드 응용 프로그램을 개발하는 html 파일은 여기 숨겨진 입력 uiwebview를 어떻게 추출합니까? -

내 HTML 페이지입니다 내가 3 개 필드를 가져오고 웹 서비스에 전달해야 할 많은 필드가 포함

<form name="frmPostBack" id="frmPostBack" action="failure" method="post"  style="display:none;"> 
<input type="hidden" name="myId" value="123654"> 
<input type="hidden" name="first name" value="xxxxx"> 
<input type="hidden" name="status" value="failure"> 

전 이미 존재하는 myId, 이름 및 상태 값을 캡처해야합니다. 여기

내 샘플 코드 :

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
NSCachedURLResponse *resp = [[NSURLCache sharedURLCache]cachedResponseForRequest:webpage.request]; 
NSString *yourHTMLSourceCodeString = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerHTML"]; 
NSLog(@"%@",[(NSHTTPURLResponse*)resp.response allHeaderFields]); 
NSLog(@"%@",yourHTMLSourceCodeString); 
NSString* value = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('myId').value"]; 

편집 코드 : 는 NSString * 값 = [웹 페이지 stringByEvaluatingJavaScriptFromString : @ "document.getElementById를 ('MYID') 값입니다."];

NSRange r; 
while ((r = [value rangeOfString:@"<form name=\"frmPostBack\" id=\"frmPostBack\" action=\"failure\" method=\"post\"  style=\"display:none;\"> <input type=\"hidden\" name=\"myId\" value=\"" options:NSRegularExpressionSearch]).location != NSNotFound) 
value = [value stringByReplacingCharactersInRange:r withString:@""]; 
NSArray *items = [value componentsSeparatedByString:@" "]; 
NSString *myId = [items objectAtIndex:0]; 
NSLog(@"valkue==%@",value); 
NSLog(@"myId=%@",myId); 

내 O/P는 :
valkue의 ==이 약간 불규칙 방법 일뿐 작동 =

+0

오 kk. 잠시 시간을내어 –

+0

yourHTMLSourceCodeString 결과를 표시 할 수 있습니까 –

+0

내 이전 출력 만 내 오/P가 표시됩니다 : valkue == myId = –

답변

1


MYID이

- (void)webViewDidFinishLoad:(UIWebView *)webView { 


NSCachedURLResponse *resp = [[NSURLCache sharedURLCache]cachedResponseForRequest:webpage.request]; 
NSString *yourHTMLSourceCodeString = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerHTML"]; 
NSLog(@"%@",[(NSHTTPURLResponse*)resp.response allHeaderFields]); 
NSLog(@"%@",yourHTMLSourceCodeString); 
NSString* value = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('myId').value"]; 

NSRange r; 
while ((r = [value rangeOfString:@"<form name=\"frmPostBack\" id=\"frmPostBack\" action=\"failure\" method=\"post\"  style=\"display:none;\"> <input type=\"hidden\" name=\"myId\" value=\"" options:NSRegularExpressionSearch]).location != NSNotFound) 

    value = [value stringByReplacingCharactersInRange:r withString:@""]; 

value=[value stringByReplacingOccurrencesOfString:@"><input type=\"hidden\" name=\"status\" value=\"failure\">" withString:@""]; 

value=[value stringByReplacingOccurrencesOfString:@"name=\"first name\"" withString:@""]; 

value=[value stringByReplacingOccurrencesOfString:@"><input type=\"hidden\" " withString:@""]; 

value=[value stringByReplacingOccurrencesOfString:@"\"" withString:@""]; 

NSArray *items = [value componentsSeparatedByString:@" "]; 

NSString *myId = [items objectAtIndex:0]; // pass this value to server 
NSString *name = [items objectAtIndex:1]; 

name=[name stringByReplacingOccurrencesOfString:@"value=" withString:@""]; // pass this value to server 


NSLog(@"valkue==%@",value); 
NSLog(@"myId=%@",myId); 
NSLog(@"name=%@",name); 

당신의 O/p는

입니다 시도
valkue==123654 value=xxxxx 
myId=123654 
name=xxxxx 
+0

okie 가치는 어디에서 오는 것입니까? 나는 값 = [값 stringByReplacingCharactersInRange : r withString : @ ""]을 의미합니다; –

+0

내 업데이트 된 답변 확인 –

+0

okie bro 나는 문제가있는 경우이 코드를 사용합니다. 코드 –

관련 문제