【发布时间】:2021-12-27 10:22:15
【问题描述】:
我正在尝试使用以下代码使用WKWebiew 从 URL 加载 PDF,并且我还添加了 WKWebiew 的必要委托方法。
func loadPDFDocument()
{
if let url = URL(string: self.contentURL)
{
print("URL: \(url)")
if UIApplication.shared.canOpenURL(url) {
self.webView.navigationDelegate = self
self.webView.load(URLRequest(url: url))
} else {
self.showInvalidURLError()
}
} else {
self.showInvalidURLError()
}
}
它正在加载,但实际内容没有显示出来,而是如下图所示:
现在,我已经使用以下代码在 PDFKit 中进行了尝试,它正在加载实际内容。
func loadPDFDocument()
{
let pdfView = self.createPdfView(withFrame: self.view.bounds)
if let pdfDocument = self.createPdfDocument() {
self.view.addSubview(pdfView)
pdfView.document = pdfDocument
}
}
func createPdfDocument() -> PDFDocument?
{
if let resourceUrl = URL(string: "https://d1shcqlf263trc.cloudfront.net/Engage/Contents/LearningStore/16335111672611633500529010123TestPDFfile06Oct2021.pdf") {
return PDFDocument(url: resourceUrl)
}
return nil
}
func createPdfView(withFrame frame: CGRect) -> PDFView
{
let pdfView = PDFView(frame: frame)
pdfView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
pdfView.autoScales = true
return pdfView
}
我想使用WKWebiew 加载此 PDF 的原因如下:
- 一旦 URL 完成加载(有或没有错误),我可以得到回调
- 我还需要加载其他类型的内容,例如PPT,这样我就可以复用
WKWebiew代码了。
使用WKWebiew 无法加载 PDF 可能是什么问题。是 PDF 的问题,还是 URL 的问题,或者我使用 WKWebiew 加载它的方式?
【问题讨论】:
标签: ios wkwebview nsurl ios-pdfkit