webview与h5交互大全

WebView

2016-09-15  本文已影响1279人  Mario_ZJ

UIWebView的基本了解

示例图片2
//设置网页自动适应(默认是NO)
self.webView.scalesPageToFit = YES; 
//设置检测网页中的格式类型,all表示检测所有类型包括超链接、电话号码、地址等
self.webView.dataDetectorTypes = UIDataDetectorTypeAll; 
//UIWebView内有一个UIScrollView控件,所以可以滚动,通过设置scrollView,可以设置UIWebView的大小和位置
self.webView.scrollView.contentInset = UIEdgeInsetsMake(50, 0, 0, 0);
    //1.确定url(加载网页)
    NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
    //(加载本地文件)
    NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/视频/高清视频/课堂问答-上午.mp4"];
    
    //2.创建请求对象
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    
    //3.加载网页
    [self.webView loadRequest:request];
self.webView.delegate = self;

代理方法
1.即将加载某个网页(请求) 返回值:YES 可以加载该请求 NO 不加载

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSLog(@"shouldStartLoadWithRequest--%@",request.URL.absoluteString);
    
    NSString *string = request.URL.absoluteString;
    if ([string containsString:@"dushu"]) {
        return NO;
    }
    return YES;
}

2.开始加载网页的时候调用

-(void)webViewDidStartLoad:(UIWebView *)webView
{
    NSLog(@"webViewDidStartLoad");
}

3.当加载失败或者是错误的时候调用

-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
    NSLog(@"didFailLoadWithError");
}

4.加载完成

-(void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSLog(@"webViewDidFinishLoad");
    
    self.goback.enabled = self.webView.canGoBack;
    self.goforward.enabled = self.webView.canGoForward;
}
    [self.webView goForward];   前进
    [self.webView goBack];      回退
    [self.webView reload];      刷新
 [self.webView stopLoading];      停止加载
-(void)webViewDidFinishLoad:(UIWebView *)webView;

属性:

//能后退
@property (nonatomic, readonly, getter=canGoBack) BOOL canGoBack;
//能前进
@property (nonatomic, readonly, getter=canGoForward) BOOL canGoForward;
//能加载
@property (nonatomic, readonly, getter=isLoading) BOOL loading;

代码示例:

//4.加载完成
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
    self.goback.enabled = self.webView.canGoBack;
    self.goforward.enabled = self.webView.canGoForward;
}
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;

示例代码 :

//1.即将加载某个网页(请求) 返回值:YES 可以加载该请求 NO 不加载
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSLog(@"shouldStartLoadWithRequest--%@",request.URL.absoluteString);
    //获取请求中的url,并转换成字符串
    NSString *string = request.URL.absoluteString;
    if ([string containsString:@"dushu"]) {
        return NO;
    }
    return YES;
}
@interface ViewController ()<UIWebViewDelegate>
/***拖拽出storyboard中的看属性***/
@property (weak, nonatomic) IBOutlet UIBarButtonItem *goback;
@property (weak, nonatomic) IBOutlet UIBarButtonItem *goforward;
@property (weak, nonatomic) IBOutlet UIWebView *webView;
@end
/\
@implementation ViewController
/***实现点击 后退,前进,刷新 的功能***/
-(IBAction)goBackBtn:(UIBarButtonItem *)sender {
    [self.webView goBack];
}
-(IBAction)goforwardBtn:(UIBarButtonItem *)sender {
    [self.webView goForward];
}
-(IBAction)loadBtn:(UIBarButtonItem *)sender {
    [self.webView reload];
}
/\
/***设置要加载的网页,并加载,设置网页的自适应,设置代理***/
-(void)viewDidLoad {
    [super viewDidLoad];
    //url
    NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
    //2.request
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [self.webView loadRequest:request];    
    //设置自适应网页
    self.webView.scalesPageToFit = YES;
    //设置代理
    self.webView.delegate = self;
}
/\
/***UIWebView的代理方法***/
#pragma mark UIWebViewDelegate
//1.即将加载某个网页(请求) 返回值:YES 可以加载该请求 NO 不加载
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSLog(@"shouldStartLoadWithRequest--%@",request.URL.absoluteString);
    NSString *string = request.URL.absoluteString;
    if ([string containsString:@"dushu"]) {
        return NO;
    }
    return YES;
}
//2.开始加载网页的时候调用
-(void)webViewDidStartLoad:(UIWebView *)webView
{
    NSLog(@"webViewDidStartLoad");
}
//3.当加载失败或者是错误的时候调用
-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
    NSLog(@"didFailLoadWithError");
}
//4.加载完成
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSLog(@"webViewDidFinishLoad");
    self.goback.enabled = self.webView.canGoBack;
    self.goforward.enabled = self.webView.canGoForward;  
}
上一篇 下一篇

猜你喜欢

热点阅读