美文网首页webviewiOS开发
iOS开发: webView的交互发送请求

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

作者: iOS_SXH | 来源:发表于2017-01-16 15:14 被阅读671次

    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

    相关文章

      网友评论

        本文标题:iOS开发: webView的交互发送请求

        本文链接:https://www.haomeiwen.com/subject/oncpbttx.html