33 lines
974 B
Swift
33 lines
974 B
Swift
import WebKit
|
|
|
|
extension RDEPUBWebView {
|
|
func applySearchDecorationsIfNeeded(completion: (() -> Void)? = nil) {
|
|
guard let webView else {
|
|
completion?()
|
|
return
|
|
}
|
|
|
|
let presentation: RDEPUBSearchPresentation?
|
|
switch currentRenderRequest {
|
|
case .reflowable(let request):
|
|
presentation = request.searchPresentation
|
|
case .fixed(let request):
|
|
presentation = request.searchPresentation
|
|
case .none:
|
|
presentation = nil
|
|
}
|
|
|
|
let script = RDEPUBJavaScriptBridge.applySearchScript(for: presentation)
|
|
webView.evaluateJavaScript(script) { [weak self] _, error in
|
|
guard let self else {
|
|
completion?()
|
|
return
|
|
}
|
|
if let error {
|
|
self.delegate?.epubWebView(self, didLogJavaScriptError: error.localizedDescription)
|
|
}
|
|
completion?()
|
|
}
|
|
}
|
|
}
|