iOS 8:UIWebView的简单使用

1  基本用法

1、实例化:UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.window.bounds];

2、配置参数:delegate、scalesPageToFit等

3、加载请求:[webView loadRequest:NSRequest实例];

4、委托方法:

1)、完成加载

- (void)webViewDidFinishLoad:(UIWebView *)webView

2  操作JavaScript

1、获得网页地址

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

2、获得网页标题

NSString *title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];

3、修改字体大小

NSString *jsString = [[NSString alloc] initWithFormat:@"document.getElementsByTagName(‘body‘)[0].style.webkitTextSizeAdjust= ‘%d%%‘",
50];
[webView stringByEvaluatingJavaScriptFromString:jsString];

4、水平垂直居中

NSString *bodyStyleVertical = @"document.getElementsByTagName(‘body‘)[0].style.verticalAlign = ‘middle‘;";
NSString *bodyStyleHorizontal = @"document.getElementsByTagName(‘body‘)[0].style.textAlign = ‘center‘;";
NSString *mapStyle = @"document.getElementById(‘mapid‘).style.margin = ‘auto‘;";

[webView stringByEvaluatingJavaScriptFromString:bodyStyleVertical];
[webView stringByEvaluatingJavaScriptFromString:bodyStyleHorizontal];
[webView stringByEvaluatingJavaScriptFromString:mapStyle];

5、修改字体颜色

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

6、修改页面背景颜色

[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName(‘body‘)[0].style.background=‘black‘"];

7、改变图片大小

 1 [webView stringByEvaluatingJavaScriptFromString:
 2 @"var script = document.createElement(‘script‘);"
 3 "script.type = ‘text/javascript‘;"
 4 "script.text = \"function ResizeImages() { "
 5 "var myimg,oldwidth;"
 6 "var maxwidth=320;" //缩放系数
 7 "for(i=0;i <document.images.length;i++){"
 8 "myimg = document.images[i];"
 9 "if(myimg.width > maxwidth){"
10 "oldwidth = myimg.width;"
11 "myimg.width = maxwidth;"
12 "myimg.height = myimg.height * (maxwidth/oldwidth);"
13 "}"
14 "}"
15 "}\";"
16 "document.getElementsByTagName(‘head‘)[0].appendChild(script);"];
17
18 [webView stringByEvaluatingJavaScriptFromString:@"ResizeImages();"];

改变图片大小

8、提交表单

1 NSString * currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];
2 //取得标题
3 NSString * title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];
4 //设置表单
5 NSString * js_result = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName(‘q‘)[0].value=‘username‘;"];
6 //提交表单
7 NSString * js_result2 = [webView stringByEvaluatingJavaScriptFromString:@"document.forms[0].submit();"];
8
9 NSLog(@"pp%@,qq%@,ww%@,ee%@",currentURL,title,js_result,js_result2);

提交表单

9、查看源代码

NSString *jsToGetHTMLSource = @"document.getElementsByTagName(‘html‘)[0].innerHTML";
NSString *HTMLSource = [webView_ stringByEvaluatingJavaScriptFromString:jsToGetHTMLSource];
NSLog(@"%@",HTMLSource);

10、长按菜单

[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitUserSelect=‘none‘;"];

11、滚动到某个位置

[webView stringByEvaluatingJavaScriptFromString:@"window.scrollTo(0,200);"];

12、获取图片手势

UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTap:)];
doubleTap.numberOfTouchesRequired = 2;
[webView addGestureRecognizer:doubleTap];

13、获取图片地址

 1 - (void) doubleTap:(UITapGestureRecognizer*) sender {
 2     //  <Find HTML tag which was clicked by user>
 3     //  <If tag is IMG, then get image URL and start saving>
 4     UIWebView *webView = (UIWebView*)[self.window viewWithTag:1000];
 5     int scrollPositionY = [[webView stringByEvaluatingJavaScriptFromString:@"window.pageYOffset"] intValue];
 6     int scrollPositionX = [[webView stringByEvaluatingJavaScriptFromString:@"window.pageXOffset"] intValue];
 7
 8     int displayWidth = [[webView stringByEvaluatingJavaScriptFromString:@"window.outerWidth"] intValue];
 9     CGFloat scale = webView.frame.size.width / displayWidth;
10
11     CGPoint pt = [sender locationInView:webView];
12     pt.x *= scale;
13     pt.y *= scale;
14     pt.x += scrollPositionX;
15     pt.y += scrollPositionY;
16
17     NSString *js = [NSString stringWithFormat:@"document.elementFromPoint(%f, %f).tagName", pt.x, pt.y];
18     NSString * tagName = [webView stringByEvaluatingJavaScriptFromString:js];
19     if ([tagName isEqualToString:@“IMG”]) {// IMG可能会换
20         NSString *imgURL = [NSString stringWithFormat:@"document.elementFromPoint(%f, %f).src", pt.x, pt.y];
21         NSString *urlToSave = [webView stringByEvaluatingJavaScriptFromString:imgURL];
22         NSLog(@"image url=%@", urlToSave);
23     }
24
25
26 }

获取图片地址

14、获取视频地址

1 NSString *lJs2 = @"(document.getElementsByTagName(\"video\")[0]).getElementsByTagName(\"source\")[0].src";  //qiyi
2 NSString *lJs2 = @"(document.getElementsByTagName(\"video\")[0]).src";  // youku,tudou,ku6 ,souhu
3 NSString *lm3u8 = [webView stringByEvaluatingJavaScriptFromString:lJs2];
4 NSLog(@"video source:%@",lm3u8);
时间: 2024-12-15 01:38:55

iOS 8:UIWebView的简单使用的相关文章

iOS之 UIWebView的简单学习

UIWebView的简单学习 #import "ViewController.h" @interface ViewController ()<UIWebViewDelegate> { UIWebView *WebView; UIView *view; UIActivityIndicatorView *activityIndicator; } @end @implementation ViewController - (void)viewDidLoad { [super vi

iOS中UIWebView的使用详解

iOS中UIWebView的使用详解 一.初始化与三种加载方式 UIWebView继承与UIView,因此,其初始化方法和一般的view一样,通过alloc和init进行初始化,其加载数据的方式有三种: 第一种: - (void)loadRequest:(NSURLRequest *)request; 这是加载网页最常用的一种方式,通过一个网页URL来进行加载,这个URL可以是远程的也可以是本地的,例如我加载百度的主页:     UIWebView * view = [[UIWebView al

iOS开发网络篇—简单介绍ASI框架的使用

iOS开发网络篇—简单介绍ASI框架的使用 说明:本文主要介绍网络编程中常用框架ASI的简单使用. 一.ASI简单介绍 ASI:全称是ASIHTTPRequest,外号“HTTP终结者”,功能十分强大. ASI的实现基于底层的CFNetwork框架,因此运行效率很高.可惜作者早已停止更新,有一些潜在的BUG无人去解决 ASI的github地址 https://github.com/pokeb/asi-http-request ASI的使用参考 http://www.cnblogs.com/dot

iOS开发UI篇—简单介绍静态单元格的使用

iOS开发UI篇-简单介绍静态单元格的使用 一.实现效果与说明 说明:观察上面的展示效果,可以发现整个界面是由一个tableview来展示的,上面的数据都是固定的,且几乎不会改变. 要完成上面的效果,有几种方法: (1)可以直接利用代码,返回三组,在判断每组有多少行,展示些什么数据,这样写"死"的代码建议绝不要使用. (2)稍微灵活一些的,可以把plist文件一懒加载的方式,加载到程序中,动态获取.但是观察界面结构,很容易看出这样需要进行模型嵌套,很麻烦. (3)storyboard提

iOS中UIWebView执行JS代码(UIWebView)

iOS中UIWebView执行JS代码(UIWebView) 有时候iOS开发过程中使用 UIWebView 经常需要加载网页,但是网页中有很多明显的标记让人一眼就能看出来是加载的网页,而我们又不想被人卡出来. 如网页中的这个导航 通常我们不需要WebView中的 导航栏,也不需要里面的返回上一级的交互.. 对WebView常用的另外一种功能就是对某个点击添加对用function实现JS调用OC的交互功能. 下面一一介绍: 1. UIWebView 调用JS代码 OC调用JS通常是,在webVi

文顶顶 iOS开发UI篇—简单的浏览器查看程序

文顶顶 iOS开发UI篇—简单的浏览器查看程序 iOS开发UI篇—简单的浏览器查看程序 一.程序实现要求 1.要求 2. 界面分析 (1) 需要读取或修改属性的控件需要设置属性 序号标签 图片 图片描述 左边按钮 右边按钮 (2) 需要监听响应事件的对象,需要添加监听方法 左边按钮 右边按钮 二.实现基本功能的程序 1 // 2 // YYViewController.m 3 // 03-图片浏览器初步 4 // 5 // Created by apple on 14-5-21. 6 // Co

iOS中动画的简单使用

//***简单动画 [UIView animateWithDuration:3 animations:^{ //      _animationView.center = CGPointMake(arc4random()%320, arc4random()%480);//改变中心点 //      _animationView.frame = CGRectMake(arc4random()%320, arc4random()%480,arc4random()%320, arc4random()%

Socket在iOS客户端上的简单实现 - 利用GCAsyncSocket框架

GCAsyncSocket 这是一个2003的开发出来的一个开源框架 首先把GCDAsyncSocket的.h和.m文件拖入到工程中 试图控制器遵守GCDAsyncSocketDelegate协议 实例:在页面上有一个简单的textView和textField 在textField中输入文字后,点击发送即可把文字发送到服务器 ,服务器端返回的文字数据会显示到textView上 //  服务器主机ip地址#define kHost @"172.16.3.101"//  服务器主机通信端口

iOS开发UI基础—简单的浏览器查看程序

iOS开发UI基础-简单的浏览器查看程序 一.程序实现要求 1.要求 2. 界面分析 (1) 需要读取或修改属性的控件需要设置属性 序号标签 图片 图片描述 左边按钮 右边按钮 (2) 需要监听响应事件的对象,需要添加监听方法 左边按钮 右边按钮 二.实现基本功能的程序 1 // 2 // YYViewController.m 3 // 03-图片浏览器初步 4 // 5 // Created by apple on 14-5-21. 6 // Copyright (c) 2014年 itcas

iOS中用UIWebView的loadHTMLString后图片和文字失调解决方法

iOS中用UIWebView的loadHTMLString后图片和文字失调,图片过大,超过屏幕,文字太小:或者图片太小,文字太大,总之就是不协调. 我们的需求是让图片的大小跟着屏幕的变化而变化,就是动态的去适应屏幕:那么文字的字体就是我们自己可以控制,可大可小.要想达到这样的效果,我们要在用loadHTMLString加载字符串之前对它进行处理.怎么处理呢?什么原理呢? 处理HTMLString的方法: NSString *htmls = [NSString stringWithFormat:@