我使用WKWebview
中的刷新功能。执行刷新时功能正常。但是,当我加载另一个html
文件并返回时,它不会刷新。
@IBOutlet var myWebView: WKWebView!
var refController:UIRefreshControl = UIRefreshControl()
override func viewDidLoad() {
super.viewDidLoad()
myWebView.uiDelegate = self
myWebView.navigationDelegate = self
myWebView.scrollView.delegate = self
refController.bounds = CGRect.init(x: 0.0, y: 50.0, width: refController.bounds.size.width, height: refController.bounds.size.height)
refController.addTarget(self, action: #selector(self.webviewRefresh(refresh:)), for: .valueChanged)
myWebView.scrollView.addSubview(refController)
...
}
@objc func webviewRefresh(refresh:UIRefreshControl){
refController.endRefreshing()
myWebView.reload()
}
extension mainWebViewController: UIScrollViewDelegate{
func scrollViewDidScroll(_ scrollView: UIScrollView) {
print("come in ??")
if currentHtmlFileName == "Main.html" {
scrollView.bounces = (scrollView.contentOffset.y <= 0)
} else {
scrollView.bounces = false
}
}
}
您可以从我的代码中看到,我的WKWebview
正在滚动,并且该函数已执行。但是,当在另一个屏幕上激活该函数并返回该函数时,该函数不会被调用,刷新也不会起作用。
重现问题的步骤如下:
location.href = "./other.html";
history.back()
就我而言,我反弹了,但是刷新没有运行,并且没有调用该函数。
有人能和我解决相同的问题吗?这是一个错误吗???
我使用WKWebview中的刷新功能。执行刷新时功能正常。但是,当我加载另一个html文件并返回时,它不会刷新。 @IBOutlet var myWebView:WKWebView! ...
我对此问题考虑了很多。因此,我的结论是history.back()
不会更改bounce
的值。因此,bounce
的值为false
。