当前位置:   article > 正文

UIWebView

uiwebview

简单介绍

  • 什么是UIWebView
    UIWebView是iOS内置的浏览器控件
    系统自带的Safari浏览器就是通过UIWebView实现的
    UIWebView不但能加载远程的网页资源,还能加载绝大部分的常见文件

html\htm
pdf,doc,ppt,txt
mp4

  • UIWebView常用的加载资源的方法
-(void)loadRequest:(NSURLRequest *)request;
  • 1

常用属性和方法

  • 重新加载(刷新)
-(void)reload;
  • 1
  • 停止加载
- (void)stopLoading;
  • 1
  • 回退
- (void)goBack;
  • 1
  • 前进
- (void)goForward;
  • 1
  • 需要进行检测的数据类型
@property(nonatomic) UIDataDetectorTypes dataDetectorTypes;
  • 1

基本使用

/** 网页控件 */
@property (strong, nonatomic) IBOutlet UIWebView webView;
/
后退按钮 */
@property (strong, nonatomic) IBOutlet UIBarButtonItem goBack;
/
前进按钮 */
@property (strong, nonatomic) IBOutlet UIBarButtonItem goForward;
/
刷新按钮 **/
@property (strong, nonatomic) IBOutlet UIBarButtonItem *fresh;

  • 加载网页
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]]];
  • 1
  • 加载图片,PPT,视频
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:@"/Users/liuhongtao/Desktop/图片"]]];
  • 1
  • 加载XCode中的文件
[self.webView loadRequest:[NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:@"" withExtension:nil]]];
  • 1
  • 让webView移动一下(scrollView.contentInset属性)
self.webView.scrollView.contentInset = UIEdgeInsetsMake(40, 0, 0, 0);
  • 1
  • 是否自适应(适配)
 self.webView.scalesPageToFit = YES;

  • 1
  • 2
  • 设置数据识别
/*
        UIDataDetectorTypePhoneNumber
        UIDataDetectorTypeLink
        UIDataDetectorTypeAddress API_AVAILABLE(ios(4.0))
        UIDataDetectorTypeCalendarEvent API_AVAILABLE(ios(4.0))
        UIDataDetectorTypeShipmentTrackingNumber API_AVAILABLE(ios(10.0))
        UIDataDetectorTypeFlightNumber API_AVAILABLE(ios(10.0))
        UIDataDetectorTypeLookupSuggestion API_AVAILABLE(ios(10.0))
        UIDataDetectorTypeNone
        UIDataDetectorTypeAll
     */
self.webView.dataDetectorTypes = UIDataDetectorTypeAll;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

代理方法的使用

  • 遵守协议
    UIWebViewDelegate
  • 主方法
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    //加载网页
   [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]]];
   //设置代理
    self.webView.delegate = self;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 后退按钮操作
- (IBAction)goBack:(id)sender {
    [self.webView goBack];
}
  • 1
  • 2
  • 3
  • 前进按钮操作
- (IBAction)goForward:(id)sender {
    [self.webView goForward];
}
  • 1
  • 2
  • 3
  • 刷新按钮操作
- (IBAction)fresh:(id)sender {
    [self.webView reload];
}
  • 1
  • 2
  • 3
  • 开始加载网页的时候调用
- (void)webViewDidStartLoad:(UIWebView *)webView{
    
}
  • 1
  • 2
  • 3
  • 网页加载完成的时候调用(一般在这里控制我们设置的按钮,是否可以前进网页和后退网页,如果不可以就让按钮不可以点击)
- (void)webViewDidFinishLoad:(UIWebView *)webView{
    self.goBack.enabled = self.webView.canGoBack;
    self.goForward.enabled = self.webView.canGoForward;
    
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 加载失败的时候调用
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{
    
}
  • 1
  • 2
  • 3
  • 即将加载某个请求的时候调用(可以用作网络拦截)
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
//拦截图片
    //获取当前请求网络的URl
    NSString *string = request.URL.absoluteString;
    //判断字符串中是否包含image,如果有,不允许访问,返回NO
    if ([string containsString:@"image"]) {
        return NO;
    }
    return YES;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/109513
推荐阅读
相关标签
  

闽ICP备14008679号