ios - 向 WKWebView 添加加载栏并选择其颜色
问题描述
我正在尝试在我的 WebView 页面顶部添加一个加载栏。我将在哪里添加代码。也可以改变这个加载栏的颜色吗?
class CycleViewController: UIViewController, WKUIDelegate {
var window: UIWindow?
var webView: WKWebView!
override func loadView() {
let webConfiguration = WKWebViewConfiguration()
webView = WKWebView(frame: .zero, configuration: webConfiguration)
webView.uiDelegate = self
view = webView
}
override func viewDidLoad() {
super.viewDidLoad()
webView.backgroundColor = UIColor.clear
webView.backgroundColor = UIColor(red: 0.0196, green: 0.4, blue: 0.2902, alpha: 1.0)
webView.isOpaque = false
let myURL = URL(string: "https://jwelsh19.wixsite.com/countryday")
let myRequest = URLRequest(url: myURL!)
webView.load(myRequest)
}
}
解决方案
如果您不想要自定义视图,那么您可以使用 SFSafariViewController 来实现这一点。使用下面的代码
if let url = URL(string: "https://jwelsh19.wixsite.com/countryday") {
let config = SFSafariViewController.Configuration()
config.entersReaderIfAvailable = true
let vc = SFSafariViewController(url: url, configuration: config)
present(vc, animated: true)
}
如果您不想使用 SFSafariViewController 然后将 uiprogress bar 添加到您的 webview containerview 并观察 webview 进度并相应地更新 UIProgressbar 并观察 webview 进度使用 webview 进度观察器
webView.addObserver(self, forKeyPath: #keyPath(WKWebView.estimatedProgress), options: .new, context: nil)
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if keyPath == "estimatedProgress" {
progressView.progress = Float(webView.estimatedProgress)
}
}
推荐阅读
- azure - 尝试创建 Azure 发布/运行 Azure 发布管道发布返回错误 400
- reactjs - 为什么我在 React JS 中的删除按钮不起作用?
- javascript - 如何在部分标签中并排对齐图像和文本 div?
- swagger-ui - 指定非空对象时,Swagger 字段验证失败
- sql - 没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换 - Postgresql(IF 函数)
- api - ETag 和自定义标头
- php - 如何在 Azure Web App 中部署 PHP Lumen API 代码
- jquery-easyui - 在 EasyUI 树中删除所有子节点后,如何使父节点看起来像一个 dir 节点?
- java - TicTacToe:检查对角线获胜的方法
- ios - LinkedIn iOS 应用内浏览器不播放内嵌视频,中断一帧 360 VR 视频