webview的三种使用方式

同步方式:

1 解析本地HTML文件

{

     NSString * htmlPath =[[NSBundle mainBundle] pathForResourse:@"index" ofType:@"html"];

     NSURL *bundeleUrl =[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]];

     NSError *error =nil;

     NSString *html =[[NSString alloc] initWithContentsOfFlie:htmlPath encoding: NSUTF8StingEncoding error:&error];

      if(error == nil){

       [self.webView loadHTMLSting:html baseURL:bundleUrl];

    }

}

2 提取本地数据

{

    NSString * htmlPath =[[NSBundle mainBundle] pathForResourse:@"index" ofType:@"html"];

     NSURL *bundeleUrl =[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]];

     NSError *error =nil;

     NSDate *htmlData =[[ NSData alloc ] initWithContentsOfFile:htmlPath];

      if(error == nil){

          [self.webView  loadData:htmlData MIMEType:@"text/html"  textEncodingName:@"UTF-8" baseURL: bundleUrl  ];

      }

}

异步方式:

读取网络资源

{

     NSURL *url =[NSURL URLWithString:@http://blog.csdn.net];

     NSURLRequest *request =[NSURLReaquest requestWithURL :url];

     [self,webView  loadRequest :request];

     self.webView.delegate =self;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WKWebView高度自适应可以使用以下三种方式: 1. 使用JavaScript获取内容高度,然后将WebView的高度设置为内容高度。 ```swift // 通过JavaScript获取内容高度 webView.evaluateJavaScript("document.body.scrollHeight") { [weak self] (result, error) in guard let height = result as? CGFloat else { return } // 将WebView的高度设置为内容高度 self?.webViewHeightConstraint.constant = height } ``` 2. 使用WKWebView的`scrollViewDidScroll`方法获取内容高度,然后将WebView的高度设置为内容高度。 ```swift func scrollViewDidScroll(_ scrollView: UIScrollView) { // 获取内容高度 let height = scrollView.contentSize.height // 将WebView的高度设置为内容高度 webViewHeightConstraint.constant = height } ``` 3. 监听WKWebView的`estimatedProgress`属性,当其值为1时,获取内容高度,然后将WebView的高度设置为内容高度。 ```swift private var isWebViewLoaded = false func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { isWebViewLoaded = true } func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) { if keyPath == "estimatedProgress" { if let progress = change?[.newKey] as? Float, progress == 1.0 && isWebViewLoaded { // 获取内容高度 webView.evaluateJavaScript("document.body.scrollHeight") { [weak self] (result, error) in guard let height = result as? CGFloat else { return } // 将WebView的高度设置为内容高度 self?.webViewHeightConstraint.constant = height } } } } ``` 需要注意的是,第三种方式需要在初始化时添加观察者,如下所示: ```swift webView.addObserver(self, forKeyPath: "estimatedProgress", options: [.new, .old], context: nil) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值