我有一些静态HTML页面,我使用WKWebView
方法加载到loadHTMLString(_:baseURL:)
中。本地HTML页面中的href
链接使用相同的方法加载另一个本地HTML页面。
已加载的本地HTML页面之间的历史记录导航必须使用滑动手势(向后和向前)工作,因此我设置了:
webView.allowsBackForwardNavigationGestures = true
localHTML <-(swipe back/forward)-> localHTML <-(swipe back/forward)-> localHTML
目标是具有与使用load(_:URLRequest)
时的滑动导航完全相同的光学行为,这意味着即将到来的历史项目(后退和前进项目)的预览。
(另一个用户也有类似的问题,但该解决方案不适用于我的问题:iPhone UIWebView loadHtmlString not added to history)
答案 0 :(得分:0)
WKWebView
导航手势(在历史记录中来回滑动)可以与load(_:URLRequest)
一起正常使用。 loadHTMLString()
该问题的一种可能的解决方案是使用init(fileURLWithPath:)
类型的URL
来加载本地HTML页面。
override func viewDidLoad() {
super.viewDidLoad()
// WKWebView configuration ...
webView.allowsBackForwardNavigationGestures = true
let url = URL(fileURLWithPath: Bundle.main.path(forResource: "page1", ofType: ".html")!)
let request = URLRequest(url: url)
webView.load(request)
}
func loadPage2() {
let url = URL(fileURLWithPath: Bundle.main.path(forResource: "page2", ofType: ".html")!)
let request = URLRequest(url: url)
webView.load(request)
}
在使用fileURLWithPath
加载本地HTML页面之后,滑动导航手势可以正常工作。