UIWebView裹挟参数请求
我们在实际开发中,总面临着这些那些的需求,比如让UIWebView裹挟参数进行请求显示。
CGRect rect = [[UIScreen mainScreen] bounds];
CGSize size = rect.size;
CGFloat width = size.width;
CGFloat height = size.height;
NSMutableString *strTemp = [[NSMutableString alloc]init];
NSUserDefaults *userDefaultes = [NSUserDefaults standardUserDefaults];
[strTemp appendString:@"http://………………………………"];
webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 60, width, height)];
#warning warning
#pragma mark - 携带POST的WebView请求
NSMutableURLRequest *request =[NSMutableURLRequest requestWithURL:[NSURL URLWithString:strTemp]];
request.HTTPMethod = @"POST";
NSString *dataStr = [NSString stringWithFormat:@"login_name=%@&money=%@&id=%@",[userDefaultes stringForKey:@"account"],self.chongZhiMoney.text , [BankCardListInformation sharedInstance].selectedItem[@"id"]];
request.HTTPBody = [dataStr dataUsingEncoding:NSUTF8StringEncoding];
[self.view addSubview: webView];
[webView loadRequest:request];
加载HTML字符串页面数据
还有些时候,我们需要将请求下来的html页面通过WebView进行加载
首先获得返回的html字符串数据
然后将字符串数据进行处理,返回一个字符串responseHtml
WebData *wd = [WebData shareInstance];
wd.URLString = [self URLDecodedString:responseHtml];
#pragma mark urldecode
-(NSString *)URLDecodedString:(NSString *)str
{
NSString *content = [str stringByReplacingOccurrencesOfString:@"+" withString:@" "];
NSString *decodedString=(__bridge_transfer NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL, (__bridge CFStringRef)content, CFSTR(""), CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));
return decodedString;
}
[_webView loadHTMLString:wd.URLString baseURL:nil];
通过WebView获得加载的html源代码
NSString *jsToGetHTMLSource = @"document.documentElement.innerHTML";
NSString *HTMLSource = [self.webView stringByEvaluatingJavaScriptFromString:jsToGetHTMLSource];
NSLog(@"%@",HTMLSource);
获取网页的Title
NSString *jsTitle = @"document.title";
NSString *HTMLTitle = [self.webView stringByEvaluatingJavaScriptFromString:jsTitle];
NSLog(@"%@",HTMLTitle);