整理一下webView相关的问题,开始学习的时候接触这个组件的时候,webView可以加载网页,pdf ,txt 等文件格式。内容非常强大,也是做H5一个很关键的组件。在IO8 后 苹果又 改良了另外一个组件,类似webView 组件。据说性能是提升了,提升多少。暂时没有数据支撑这个结论。
打开storyboard 拖放一个webview 的组件,然后对其进行四边约束。
{top :0 bottom:0,left:0,right:0}
在webview 在viewController 添加引用,实现UIWebViewDelegate 的协议。
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UIWebViewDelegate>
@property (strong, nonatomic) IBOutlet UIWebView *webView;
@end
协议中有三个方法,引进来。
//
// ViewController.m
// stackView
//
// Created by xiashu on 15/11/1.
// Copyright © 2015年 xiashu. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSURL *url = [NSURL URLWithString:@"http://www.egret.com/new"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
self.webView.delegate = self;//设置代理
self.webView.scalesPageToFit = YES;
[self.webView loadRequest:request];
}
- (void)webViewDidStartLoad:(UIWebView *)webView
{
NSLog(@"开始加载");
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"加载完成");
NSString *title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];
NSLog(@"标题:%@",title);
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(nullable NSError *)error
{
NSLog(@"加载失败");
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
在view 当中的webview 加载完成后, 可以显示我们的网页了。
NSString *title = [webView stringByEvaluatingJavaScriptFromString:@”document.title”];
你可以使用标题了,通过字符串的方式来读取内容。加载完后,ios 可以对其js 进行通信。
- (void)webViewDidFinishLoad:(UIWebView *)webView 方法 有
但是在IO9 有ATP 安全的问题,所以需要在info 设置一下http 方可完成才行。
2015-11-08 笔记继续记录
今晚看到别人博客《iOS学习之WebView的使用》在加载的时候,添加一层蒙版 和 等待条,这样子的体验会更加友好。