ProgressWebViewController 3.1.0

ProgressWebViewController 3.1.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2023年9月
SPM支持 SPM

Zheng-Xiang Ke 维护。




  • Zheng-Xiang Ke

ProgressWebViewController

一个使用带有进度条的导航栏的 WKWebView 实现的 WebViewController。WebViewController 是类似 Safari 的网络浏览器。

CocoaPods GitHub stars GitHub forks CocoaPods Compatible Platform GitHub license

ProgressWebViewController ProgressWebViewController

特性

  • 导航栏中的进度条
  • 根据指定的主机绕过 SSL。(即,您可以使用 ProgressWebViewController 访问自签名证书网站)
  • 自定义栏按钮项
  • 将 Cookie 分配给 WebView
  • 浏览本地的 HTML 文件
  • 支持 iOS 11 中导航栏的大型标题
  • 支持自定义头部
  • 支持自定义用户代理
  • 打开特殊的 URL,包括应用商店、电话、邮件、短信和 _blank,以打开其他应用程序
  • 支持下拉刷新
  • 支持推送导航方式

要求

  • iOS 9.0 或更高版本

v1.7.0-

  • Swift 4

v1.8.0

  • Swift 5

安装

Swift包管理器

Swift包管理器(Swift Package Manager)是一个用于自动化Swift代码分布的工具,它集成到了swift编译器中。

您一旦设置好Swift包,将ProgressWebViewController添加为依赖项就像将它添加到Package.swiftdependencies值一样简单。

dependencies: [
    .package(url: "https://github.com/kf99916/ProgressWebViewController.git")
]

CocoaPods

CocoaPods是一个Cocoa项目的依赖管理器。有关使用和安装说明,请访问他们的网站。要使用CocoaPods将ProgressWebViewController集成到Xcode项目中,请在Podfile中指定它。

pod 'ProgressWebViewController'

用法

导入

import ProgressWebViewController

集成

ProgressWebViewController

具有WKWebView和导航栏进度条的视图控制器

var url: URL? 请求的URL
var tintColor: UIColor? 进度条、导航栏和工具栏的着色色
var delegate: ProgressWebViewControllerDelegate? ProgressWebViewController的代理
var scrollViewDelegate: ProgressWebViewControllerScrollViewDelegate? 滚动视图的代理
var bypassedSSLHosts: [String]? 跳过的SSL主机。这些主机还必须在App Transport Security中禁用。
var cookies: [HTTPCookie]? 分配的Cookie
var headers: [String: String]? 自定义头
var userAgent: String? 自定义用户代理
var urlsHandledByApp: [String: Any] 配置由其他应用处理的应用URL(默认 { "hosts": ["itunes.apple.com"], "schemes": ["tel", "mailto", "sms"], "_blank": true }
var websiteTitleInNavigationBar = true 在导航栏中显示网站标题
var doneBarButtonItemPosition: NavigationBarPosition 完成栏按钮项的位置。如果控制器被呈现,则自动添加完成栏按钮项(默认 .left
var leftNavigaionBarItemTypes: [BarItemType] 配置左侧导航栏的栏按钮项(默认 []
var rightNavigaionBarItemTypes: [BarItemType] 配置右侧导航栏的栏按钮项(默认 []
var toolbarItemTypes: [BarItemType] 配置导航控制器工具栏中的栏按钮项(默认 [.back, .forward, .reload, .activity]
var navigationWay: [NavigationWay] 配置点击链接时的导航方式(默认 .browser

var pullToRefresh: Bool 启用/禁用下拉刷新(默认 false

子类化

class MyWebViewController: ProgressWebViewController {
    override open func loadView() {
        super.loadView()

        // set up webview, including cookies, headers, user agent, and so on.
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
    }

    // Other methods
}

ProgressWebViewControllerDelegate

ProgressWebViewController的代理

可选 func progressWebViewController(_ controller: ProgressWebViewController, canDismiss url: URL) -> Bool
可选 func progressWebViewController(_ controller: ProgressWebViewController, didStart url: URL)
可选 func progressWebViewController(_ controller: ProgressWebViewController, didFinish url: URL)
可选 func progressWebViewController(_ controller: ProgressWebViewController, didFail url: URL, withError error: Error)
可选 func progressWebViewController(_ controller: ProgressWebViewController, decidePolicy url: URL) -> Bool 可选 func initPushedProgressWebViewController(url: URL) -> ProgressWebViewController

ProgressWebViewControllerScrollViewDelegate

滚动视图的代理

可选 func scrollViewDidScroll(_ scrollView: UIScrollView)

BarButtonItemType

按钮项的枚举

enum BarButtonItemType {
    case back
    case forward
    case reload
    case stop
    case activity
    case done
    case flexibleSpace
}

NavigationBarPosition

导航栏位置的枚举

enum NavigationBarPosition {
    case none
    case left
    case right
}

NavigationWay

导航方式的枚举

enum NavigationWay {
    case browser
    case push
}

使用进度webview控制器app

如果你在你的应用中使用 ProgressWebViewController 并希望在此列表中列出,请简单创建一个请求。

我总是很好奇谁在使用我的项目 :)

Hikingbook - by Zheng-Xiang Ke

Hikingbook

demo

ProgressWebViewControllerDemo 是一个简单的演示应用,它使用 ProgressWebViewController 浏览苹果网站。

作者

Zheng-Xiang Ke, [email protected]

许可协议

ProgressWebViewController 的使用受到 MIT 许可证的约束。有关更多信息,请参阅 LICENSE 文件。