【问题标题】:PDF file not showing iosPDF文件不显示ios
【发布时间】:2020-05-21 16:12:16
【问题描述】:

我在 Firebase 服务器上有几个 pdf 文件,我需要在应用程序中向用户展示这些文件。 但问题是,它既不在 webview 也不在 WKWebView 中显示 pdf 文件。 我尝试了以下代码 sn-ps 但都没有成功。

if let url = URL(string: urlString){
  // First Approach          
   if let data = try? Data(contentsOf: url) {
       webView.load(data, mimeType: "application/pdf", characterEncodingName: "", baseURL: url)
   }
            // Second Approach 
            let req = URLRequest(url: url)
            self.webView.load(req)
}

这是其中一个网址。 Pdf file

我也使用了 PDFKit,但这也没有用。这是我尝试将其加载到 webview 时的日志。

2020-05-21 21:06:01.561593+0500 Mini Muslims[41242:748632] WF: _WebFilterIsActive returning: NO
2020-05-21 21:06:10.383853+0500 Mini Muslims[41242:748632] WF: _userSettingsForUser : (null)
2020-05-21 21:06:10.384063+0500 Mini Muslims[41242:748632] WF: _WebFilterIsActive returning: NO
2020-05-21 21:06:13.050745+0500 Mini Muslims[41242:748634] Task <5CBC8251-89EC-4DCD-A9A0-E794B3AEB6EC>.<0> HTTP load failed, 0/0 bytes (error code: -999 [1:89])
2020-05-21 21:06:18.123494+0500 Mini Muslims[41242:748632] WF: _userSettingsForUser : (null)
2020-05-21 21:06:18.123672+0500 Mini Muslims[41242:748632] WF: _WebFilterIsActive returning: NO
2020-05-21 21:06:18.173099+0500 Mini Muslims[41242:748632] WF: _userSettingsForUser : (null)
2020-05-21 21:06:18.173315+0500 Mini Muslims[41242:748632] WF: _WebFilterIsActive returning: NO
2020-05-21 21:06:19.260676+0500 Mini Muslims[41242:748632] WF: _userSettingsForUser : (null)
2020-05-21 21:06:19.260878+0500 Mini Muslims[41242:748632] WF: _WebFilterIsActive returning: NO
2020-05-21 21:06:22.607212+0500 Mini Muslims[41242:748632] WF: _userSettingsForUser : (null)
2020-05-21 21:06:22.607351+0500 Mini Muslims[41242:748632] WF: _WebFilterIsActive returning: NO
2020-05-21 21:06:23.080709+0500 Mini Muslims[41242:748632] WF: _userSettingsForUser : (null)
2020-05-21 21:06:23.080916+0500 Mini Muslims[41242:748632] WF: _WebFilterIsActive returning: NO
2020-05-21 21:06:28.736644+0500 Mini Muslims[41242:748632] WF: _userSettingsForUser : (null)
2020-05-21 21:06:28.736875+0500 Mini Muslims[41242:748632] WF: _WebFilterIsActive returning: NO
2020-05-21 21:06:36.769000+0500 Mini Muslims[41242:748632] WF: _userSettingsForUser : (null)
2020-05-21 21:06:36.769220+0500 Mini Muslims[41242:748632] WF: _WebFilterIsActive returning: NO

pdf 永远不会加载。可能是什么问题。请指导我,以便我可以解决此问题。

【问题讨论】:

标签: ios swift pdf wkwebview


【解决方案1】:

使用下面的代码加载WKWebView中的pdf文件

import UIKit
import WebKit

class ViewController: UIViewController,UIWebViewDelegate,UIScrollViewDelegate, WKUIDelegate {

   var WKwebView: WKWebView!

    override func viewDidLoad() {
        super.viewDidLoad()
               let userContentController: WKUserContentController = WKUserContentController()
               let conf = WKWebViewConfiguration()
               conf.userContentController = userContentController
               WKwebView = WKWebView (frame: CGRect( x: 0, y: 60, width: self.view.frame.width, height: self.view.frame.height - 60 ), configuration: WKWebViewConfiguration())
               WKwebView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
               WKwebView.uiDelegate = self
               WKwebView.scrollView.bounces = false
               WKwebView.scrollView.delegate = self;
               view.addSubview(WKwebView)

                var request : URLRequest!
                let PDFURL = "https://firebasestorage.googleapis.com/v0/b/mini-muslims.appspot.com/o/Books%2F-M5HgblfIM4jvINka3j2?alt=media&token=745ca3e3-b18b-4b2a-96c1-e791f977c2df";
                let url : URL = URL(string: PDFURL as String)!
                request = URLRequest (url: url);
                WKwebView.load(request)

    }
}

【讨论】:

  • 那为什么它对我不起作用?我复制了与您完全相同的代码,但它对我不起作用。
  • 让我给你发送控制台日志。
  • 尝试在 safari 中加载文件 URL,是否在加载?
  • 是的,它正在加载。现在它也开始在应用程序中加载。没有做任何改变。与您的代码相同,现在可以正常工作。可能是模拟器的问题?
  • 可能是一些网络问题。无论如何,很好,它开始工作了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多