WKWebView 히스토리 복원 테스트 - my-swift-lab/firefox-ios GitHub Wiki
테스트 URL
let urls = [
"https://m.youtube.com",
"https://m.youtube.com/watch?v=okbmCY1eWp0",
"https://m.youtube.com/watch?v=_J6oX_Q0sWA",
"https://m.youtube.com/watch?v=-P7DW52LEpg"
]
실행 스크립트
func restoreHistory() {
let script = self.urls.map { (it) in
return "window.history.pushState({ uuid: '\(UUID().uuidString)' }, '\(it)', '\(it)' );"
}
.joined(separator: "\n")
print(script)
let userScript = WKUserScript(source: script, injectionTime: .atDocumentStart, forMainFrameOnly: true)
self.webView.configuration.userContentController.addUserScript(userScript)
}
WKWebView 생성시 실행하기
init() {
let configuration = WKWebViewConfiguration()
configuration.allowsInlineMediaPlayback = true
self.webView = WKWebView(frame: .zero, configuration: configuration)
restoreHistory()
self.webView.allowsBackForwardNavigationGestures = true
self.webView.allowsLinkPreview = true
self.webView.navigationDelegate = self.navigationDelegate
self.webView.uiDelegate = self.uiDelegate
setupObservers()
}
결론