文章目录
  1. 1. 引言
  2. 2. 初始化
  3. 3. 协议方法
  4. 4. 加载 txt 文件
  5. 5. 调转方法
  6. 6. Document 对象方法

引言

UIWebView很强大,可加载 pdf doc mp4 等相关文件。

初始化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//UIWebView 初始化
UIWebView * webView = [[UIWebView alloc] initWithFrame:self.view.bounds];
// 网页自适应webView的大小
webView.scalesPageToFit = YES;
/* 检查敏感词汇
UIDataDetectorTypePhoneNumber 检查是否有手机号
UIDataDetectorTypeLink 超链接
UIDataDetectorTypeAddress 地址
UIDataDetectorTypeCalendarEvent 日期
UIDataDetectorTypeNone 什么也不检查
UIDataDetectorTypeAll 检查所有
*/
webView.dataDetectorTypes = UIDataDetectorTypeAll;
// 加载一个链接
NSString * path = @"http://divtao.com";
// 将字符串进行编码
NSString * urlStr = [self.fileAttribute stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
// 定义一个统一资源管理器 也就是将字符串转化成网址
NSURL * url = [NSURL URLWithString:path];
// 将网址转化成请求
NSURLRequest * request = [NSURLRequest requestWithURL:url];
// webView加载请求
[webView loadRequest:request];
//加载 网页htmlstr数据
[_webView loadHTMLString:htmlStr baseURL:nil];
// 设置代理
webView.delegate = self;

协议方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSLog(@"请求的地址%@", request.URL.absoluteString);
if([request.URL.absoluteString hasPrefix:@"ios://"]){
//如果为真,跳转到其他页
return NO;
}
// 即将开始加载
return YES;
}
- (void)webViewDidStartLoad:(UIWebView *)webView
{
NSLog(@"已经开始加载");
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"加载完成");
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
NSLog(@"加载失败error=%@",error);
}

加载 txt 文件

1
2
3
4
5
6
//利用webVw加载txt文本
UIWebView * webVw = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight - 64)];
NSString * path = [[NSBundle mainBundle] pathForResource:@"fileName" ofType:@"txt"];
NSData * dataTxt = [NSData dataWithContentsOfFile:path];
[webVw loadData:dataTxt MIMEType:@"text/plain" textEncodingName:@"UTF-8" baseURL:[NSURL fileURLWithPath:NSTemporaryDirectory()]];
[self.view addSubview:webVw];

调转方法

1
2
3
4
- (void)reload; //刷新
- (void)stopLoading; //停止加载
- (void)goBack; // 返回
- (void)goForward; //往前

Document 对象方法

getElementById() 返回对拥有指定 id 的第一个对象的引用。
getElementsByName() 返回带有指定名称的对象集合。
getElementsByTagName() 返回带有指定签名的对象集合。

1
2
3
4
//    document.body.outerHTML
// document.getElementsByClassName('timeline clear blank')[0].innerText
[webView evaluateJavaScript:@"document.body.outerHTML" completionHandler:^(id _Nullable obj, NSError * _Nullable error) {
}];

参考资料


0、关于UIWebView的总结
1、iOS中JavaScript和OC交互
2、iOS开发之Objective-C与JavaScript的交互
3、Using UIWebView to display select document types
4、WKWebView中的js与原生App的交互

文章目录
  1. 1. 引言
  2. 2. 初始化
  3. 3. 协议方法
  4. 4. 加载 txt 文件
  5. 5. 调转方法
  6. 6. Document 对象方法