ReadViewSDK/Sources/RDReaderView/EPUBCore/RDEPUBWebView+Search.swift
2026-05-21 19:40:51 +08:00

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?()
}
}
}