我有一個 iOS 應用程式,可以在其中顯示 html 和 pdf 檔案。我嘗試實作自 iOS14 ( find(_:configuration:completionHandler:)) 以來可用的頁面查找功能。
這是我的實作:
private func searchInPage(forward: Bool) {
ktWebView.select(nil)
searchIsAtTop = false
searchIsAtEnd = false
let searchConfig = WKFindConfiguration()
searchConfig.backwards = !forward
searchConfig.caseSensitive = false
searchConfig.wraps = false
ktWebView.find(searchString, configuration: searchConfig, completionHandler: { result in
// https://stackoverflow.com/questions/64193691/ios-wkwebview-findstring-not-selecting-and-scrolling
guard result.matchFound else {
if forward { searchIsAtEnd = true }
else { searchIsAtTop = true }
return
}
ktWebView.evaluateJavaScript("window.getSelection().getRangeAt(0).getBoundingClientRect().top") { offset, _ in
guard let offset = offset as? CGFloat else { return }
ktWebView.scrollView.scrollRectToVisible(
.init(x: 0, y: offset ktWebView.scrollView.contentOffset.y,
width: 100, height: 100), animated: true)
}
})
}
每次呼叫此函式時,下一次出現的 searchString 將突出顯示并滾動到。
只要 WKWebView 內容的 mime 型別為text/html. 當它application/pdf不起作用時。
誰能幫我找到在 WKWebView 中顯示的 pdf 檔案中查找字串的解決方案?
謝謝,克萊門斯
我不知道如何解決這個問題。任何幫助表示贊賞。
uj5u.com熱心網友回復:
您確定您的 PDF 檔案有文本嗎,也許它是從文本轉換為矢量的!
uj5u.com熱心網友回復:
它適用于文本檔案,可能需要從 PDF 復制文本并將其呈現為文本/字串,找到了一些示例: Can't copy text from PDF which created with iOS Swift
uj5u.com熱心網友回復:
我現在通過對 pdf 檔案使用 PDFView 而不是 WKWebView 解決了這個問題。您可以在https://github.com/cs-LA/FindInPDF找到示例示例性實作。
感謝您為幫助我解決這個問題所做的一切努力,克萊門斯
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/521907.html
