webviewiOS开发

iOS开发: webView的交互发送请求

2017-01-16  本文已影响671人  iOS_SXH

1:web发送请求。

NSUrl *  sendUrl =[NSURL URLWithString:***];

NSString * body = [NSString stringWithFormat: @"%@",***];

request1 =[NSMutableURLRequest requestWithURL:sendUrl];

[request1 setHTTPMethod: @"POST"];

[request1 setHTTPBody: [body dataUsingEncoding: NSUTF8StringEncoding]];

[mywebView loadRequest:request1];

2:项目中经常有遇到OC和webview的交互

比如:页面放个webView ,还有其他的控件放在webview的下面

那么问题来了:怎么确定webview的frame &&修改webview的内容的大小呢???

为了解决这些问题,网上查了些资料这里做个笔记


1:确定webview的Frame和修改webview内容的属性

//网页字体大小放大2.5倍

[webView  stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '250%'"];

具体实现


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

[webView  stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '250%'"];//网页字体大小放大2.5倍

CGFloat webViewHeight= [webView.scrollView contentSize].height;

CGRect newFrame = webView.frame;

newFrame.size.height = webViewHeight*2.5;//高度相对对应的也修改。

webView.frame = newFrame;

//这里就得到了 webview修改后的frame了,可以依据这个坐标来确定其他的控件坐标了。


还有一些其他可以设置的属性:(在webViewDidFinishLoad代理方法中)

//获取页面Title

NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];

//获取当前页面到URL

NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];

//字体颜色

[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextFillColor= 'gray'"];

//页面背景色

[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.background='#2E2E2E'"];

//实现点击图片全屏查看

[webView  stringByEvaluatingJavaScriptFromString:@"function assignImageClickAction(){var imgs=document.getElementsByTagName('img');var length=imgs.length;

for(var i=0;i<length;i++) {img=imgs[i];img.onclick=function(){window.location.href='image-preview:'+this.src}}}"];

[webView stringByEvaluatingJavaScriptFromString:@"assignImageClickAction();"]; 

//webView上图片的等比缩放。

[webView stringByEvaluatingJavaScriptFromString:    @"var script = document.createElement('script');"  

  "script.type = 'text/javascript';"   

"script.text = \"function ResizeImages() {"

 "var myimg,oldwidth;"   

 "var maxwidth = 300.0;" // UIWebView中显示的图片宽度    

 "for(i=0;imaxwidth){"

"oldwidth = myimg.width;"

"myimg.width = maxwidth;""}""}""}\";"

"document.getElementsByTagName('head')[0].appendChild(script);"];

[webView stringByEvaluatingJavaScriptFromString:@"ResizeImages();”];



2:webview的代理方法返回数据

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {

//这里的request.URL.scheme是和后台约定的返回字段。

//request.URL.absoluteString 后台给返回的数据:比如返回一个图片的URL。或者跳转到某个控制器等等。

if ([request.URL.scheme isEqualToString:@"*****"]) {

NSString* path = [request.URL.absoluteString substringFromIndex:[@"*****"  length]];

path = [path stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

//这里得到路径。path就是我们点击图片后得到的图片URL,然后你可以在这里做你点击之后要执行的代码

return NO;

}   return YES;

}

学无止境,做个记录

2017-01-16-SXH

上一篇下一篇

猜你喜欢

热点阅读