2014-11-07 5 views
1

Am разрабатывает приложение, которое загружается в HTML-страницы в UIWebView - это HTML-файл содержит много полей, мне нужно принести 3 поля и передать его в веб-сервисовКак извлечь скрытый вход uiwebview в ios?

Вот мой HTML страницы:

<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"]; 

Edited Код: 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 ==
MyId =

+0

oh kk. дайте некоторое время –

+0

вы можете показать свой результат yourHTMLSourceCodeString –

+0

я получаю мой предыдущий результат только мой O/P: valkue == myId = –

ответ

1

это некоторые нерегулярные метод, но работает, попробуйте это

- (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); 

ваш о/р

valkue==123654 value=xxxxx 
myId=123654 
name=xxxxx 
+0

okie, где имеет значение? i mean value = [value stringByReplacingCharactersInRange: r withString: @ ""]; –

+0

проверить мой обновленный ответ –

+0

okie bro я пробую этот код, если возникнут какие-либо проблемы, я комментирую здесь, спасибо за код –

Смежные вопросы