1

次のコードを使用して URL から PDF をロードしようとしてWKWebiewいます。必要なデリゲート メソッドも追加しまし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
}

この PDF をロードする理由WKWebiewは次のとおりです。

  1. URL の読み込みが完了すると、コールバックを取得できます (エラーの有無にかかわらず)
  2. コードを再利用できるように、PPT などの他の種類のコンテンツも読み込む必要がありWKWebiewます。

を使用してその PDF を読み込めないことが原因である可能性のある問題は何ですかWKWebiew。それはPDFの問題ですか、それともURLの問題ですか、それとも私がそれをロードする方法WKWebiewですか?

4

1 に答える 1