feat(epub): complete wxread parity scope
This commit is contained in:
@@ -91,8 +91,10 @@ extension RDEPUBWebView {
|
||||
func scheduleFixedLayoutReadyFallback() {
|
||||
let workItem = DispatchWorkItem { [weak self] in
|
||||
RDEPUBWebViewDebug.log(self?.debugScope ?? "ReaderWebView", message: "fixed ready fallback fired")
|
||||
self?.applySearchDecorationsIfNeeded {
|
||||
self?.rendered()
|
||||
self?.applyFixedPresentationIfNeeded {
|
||||
self?.refreshNativeDecorationsIfNeeded {
|
||||
self?.rendered()
|
||||
}
|
||||
}
|
||||
}
|
||||
fixedLayoutReadyWorkItem = workItem
|
||||
@@ -104,4 +106,25 @@ extension RDEPUBWebView {
|
||||
fixedLayoutReadyWorkItem?.cancel()
|
||||
fixedLayoutReadyWorkItem = nil
|
||||
}
|
||||
|
||||
func applyFixedPresentationIfNeeded(completion: (() -> Void)? = nil) {
|
||||
guard let webView,
|
||||
let currentRenderRequest,
|
||||
case .fixed(let request) = currentRenderRequest else {
|
||||
completion?()
|
||||
return
|
||||
}
|
||||
|
||||
let script = RDEPUBJavaScriptBridge.applyFixedPresentationScript(for: request)
|
||||
webView.evaluateJavaScript(script) { [weak self] _, error in
|
||||
guard let self else {
|
||||
completion?()
|
||||
return
|
||||
}
|
||||
if let error {
|
||||
self.delegate?.epubWebView(self, didLogJavaScriptError: error.localizedDescription)
|
||||
}
|
||||
self.applySearchDecorationsIfNeeded(completion: completion)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user