【发布时间】:2020-03-20 12:54:15
【问题描述】:
我使用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 正在滚动,函数被执行。但是,当函数在不同的屏幕上被激活并返回时,函数不会被调用,刷新也不会起作用。
重现问题的步骤如下:
- 加载WKwebView页面并执行刷新功能。
- 滚动到底部屏幕以查看是否有弹跳。
- 如果工作正常,请转到其他屏幕。
location.href = "./other.html"; - 从另一个屏幕滚动到底部屏幕以查看是否有 弹跳。
- 如果没有正常弹跳,请返回屏幕。
history.back() - 然后再次运行刷新功能。
在我的情况下,我有一个反弹,但刷新没有运行,并且没有调用该函数。
有没有人和我一样的问题解决过?这是bug???
【问题讨论】:
标签: javascript ios swift refresh