美文网首页花落√莫相思
29-Swift 之 UIWebView

29-Swift 之 UIWebView

作者: NetWork小贱 | 来源:发表于2017-06-12 16:26 被阅读927次

一、UIWebView的介绍

UIWebView是一个网页加载控件,多用于加载HTML 文件。

二、UIWebView的属性和方法介绍

1、UIWebView的初始化

/**
 UIWebView 的两种初始化
 init
 init ... frame...
 */
NetWorkWebView = UIWebView.init()
NetWorkWebView = UIWebView.init(frame: CGRect.init(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height))

2、设置网页的大小

/**
 设置大小
 */
NetWorkWebView.frame = CGRect.init(x: 0, y: 0, width: self.view.bounds.size.width, height: self.view.bounds.size.height)

3、UIWebView的代理

/**
 UIWebView 的代理
 */
NetWorkWebView.delegate = self;

代理事件的函数
// TODO:  网页开始加载时候调用
func webViewDidStartLoad(_ webView: UIWebView) {
    print("webViewDidStartLoad")
}
// MARK: 网页加载失败的时候调用
func webView(_ webView: UIWebView, didFailLoadWithError error: Error) {
    print("didFailLoadWithError")
}
// MARK: 网页加载完成时候调用
func webViewDidFinishLoad(_ webView: UIWebView) {
    print("webViewDidFinishLoad")
}
// TODO: 是网页发起请求前,询问是否可以发起请求
func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
    return true
}

4、UIWebView的加载

/**
 加载网页
 */
// 连接加载
NetWorkWebView.loadRequest(URLRequest.init(url: URL.init(string: "https://www.baidu.com")!))
// HTML 加载
let  htmlStr = Bundle.main.path(forResource: "ss", ofType: "html", inDirectory: nil)
NetWorkWebView.loadHTMLString(htmlStr!, baseURL: nil)
// DATA 数据形式加载
let data = try! Data.init(contentsOf: URL.init(fileURLWithPath: htmlStr!))
NetWorkWebView.load(data, mimeType: "text/html", textEncodingName: "utf-8", baseURL:Bundle.main.bundleURL)

5、设置网页使用屏幕大小和缩放

/**
 让网页自动使用大小
 */
NetWorkWebView.sizeToFit()
NetWorkWebView.sizeThatFits(self.view.bounds.size)

/**
 网页收缩适配
 */
NetWorkWebView.scalesPageToFit = true

6、UIWebVIew的内联播放器的设置

/**
 是否使用内联播放器
 */
NetWorkWebView.allowsInlineMediaPlayback = true
/**
 是否允许自动播放
 */
NetWorkWebView.mediaPlaybackRequiresUserAction = true
/**
 设置是否将数据加载如内存后渲染界面
 */
NetWorkWebView.suppressesIncrementalRendering = true
/**
 设置用户交互模式
 */
NetWorkWebView.keyboardDisplayRequiresUserAction = true
/**
 设置音频播放是否支持ari play功能
 */
NetWorkWebView.mediaPlaybackAllowsAirPlay = true

7、UIWebView的超出View的大小后的显示

/**
 IOS7 以后才可以使用的
 超出WebView大小的View,展示形式
 public enum UIWebPaginationMode : Int {
 // 默认
 case unpaginated
 
 // 从左到右进行翻页
 case leftToRight
 
 // 从顶部到底部进行翻页
 case topToBottom
 
 // 从底部到顶部进行翻页
 case bottomToTop
 
 // 从右向左进行翻页
 case rightToLeft
 }

 */
NetWorkWebView.paginationMode  = .bottomToTop
/**
 设置翻页后,获取每一页的长度
 */
let  pageWidth = NetWorkWebView.pageLength
print(pageWidth)
NetWorkWebView.pageLength = 100
/**
 获取&设置 网页翻转页面之间的间距
 */
let gapWeb = NetWorkWebView.gapBetweenPages
print(gapWeb)
NetWorkWebView.gapBetweenPages = 20

/**
 获取翻转的总页数
 */
let allCountPage = NetWorkWebView.pageCount
print(allCountPage)

/**
 网页对于部分显示的样式
 public enum UIWebPaginationBreakingMode : Int {
 // 书页形式
 case page
 // 列表形式
 case column
 }
 */
NetWorkWebView.paginationBreakingMode = .page

8、网页的停止、前进、后退、重新加载

/**
 重新加载
 */
func webLoad() {
    NetWorkWebView.reload()
}
/**
 停止加载
 */
func webStopLoad() {
    NetWorkWebView.stopLoading()
}
/**
 是否可以前进和后退
 */
func goAndBackWeb() {
    // MARK :后退
    if NetWorkWebView.canGoBack {
         NetWorkWebView.goBack()
    }
    // MARK: 前进
    if NetWorkWebView.canGoForward {
         NetWorkWebView.goForward()
    }
}
/**
 判断网页是否正在加载
 */
func isLoadingWeb() -> Void {
    let isLoading = NetWorkWebView.isLoading
    print(isLoading)
    
}

9、 网页调用JS

/**
 网页调用js
 */
func callJsWeb(jsStr:String) -> Void {
     /**
     获取网页的标题
     */
     NetWorkWebView.stringByEvaluatingJavaScript(from: "document.title")
}

相关文章

  • 29-Swift 之 UIWebView

    一、UIWebView的介绍 UIWebView是一个网页加载控件,多用于加载HTML 文件。 二、UIWebVi...

  • iOS 和 H5 交互那些事 (UIWebView、WKWeb

    1.OC与JS交互之UIWebView 创建一个UIWebView 并加载 UIWebView delegate ...

  • UIWebView之JS与OC交互(三)

    前言 基于UIWebView的JS与OC交互(一)之JSExport基于UIWebView的JS与OC交互(二)之...

  • UIWebView之JS与OC交互(二)

    前言 基于UIWebView的JS与OC交互(一)之JSExport基于UIWebView的JS与OC交互(二)之...

  • WKWebView之JS与OC交互

    前言 基于UIWebView的JS与OC交互(一)之JSExport基于UIWebView的JS与OC交互(二)之...

  • 加载Gif图片

    转载:iOS之加载Gif图片作者:镜花水月_I 1、使用UIWebView 但是使用UIWebView的弊端在于,...

  • WKWebView从入门到趟坑

    UIWebView 之痛 开发App的过程中,常常会遇到在App内部加载网页,通常用UIWebView加载。而这个...

  • WKWebView

    UIWebView 之痛 开发App的过程中,常常会遇到在App内部加载网页,通常用UIWebView加载。而这个...

  • OC与JS交互

    OC与JS交互前言 OC与JS交互之UIWebView OC与JS交互之WebViewJavascriptBrid...

  • UIWebView

    UIWebview属性: UIWebView的协议: UIWebView的方法:

网友评论

    本文标题:29-Swift 之 UIWebView

    本文链接:https://www.haomeiwen.com/subject/bjilqxtx.html