gpt4 book ai didi

ios - 为什么我的 WKWebview 或 PDFViewer 只能在 iPhone XR 模拟器中使用

转载 作者:行者123 更新时间:2023-11-29 05:48:30 44 4
gpt4 key购买 nike

我的文档目录中有本地 pdf 文件。我的代码使用 WKWebviewPDFViewer 调用每一个进行显示,但它仅在 iPhone XR 模拟器上显示,而不在任何其他模拟器设备上显示。

任何早于 XR 的设备,都会显示错误:

libMobileGestalt MobileGestalt.c:890: MGIsDeviceOneOfType is not supported on this platform.

具有 XS、XS Max 的设备,显示错误:

failed to open pdf ...

如代码所示。

有人知道为什么吗?

我使用 Xcode 10.2。

这是我用于 WKWebviewer 的代码

    @IBOutlet weak var webView: WKWebView!
//only work on XR, don't know why
override func viewDidLoad() {
super.viewDidLoad()

let documentDir = FileManager.SearchPathDirectory.documentDirectory
let userDir = FileManager.SearchPathDomainMask.userDomainMask
let paths = NSSearchPathForDirectoriesInDomains(documentDir, userDir, true)
if let dirPath = paths.first
{

let pdfURL = URL(fileURLWithPath: dirPath).appendingPathComponent("my file.pdf")
do {
//only work in Xr
let data = try Data(contentsOf: pdfURL)
webView.load(data, mimeType: "application/pdf", characterEncodingName:"", baseURL: pdfURL.deletingPathExtension())
//not working for Xs, Xs Max... later iphone
//webView.loadFileURL(pdfURL, allowingReadAccessTo: pdfURL)
//webView.load(URLRequest(url:pdfURL))

//webView.loadFileURL(pdfURL, allowingReadAccessTo: pdfURL)
print("open pdf file....")

}
catch {
print("failed to open pdf \(dirPath)" )
}
return
}

对于PDFViewer:

let documentDir = FileManager.SearchPathDirectory.documentDirectory
let userDir = FileManager.SearchPathDomainMask.userDomainMask
let paths = NSSearchPathForDirectoriesInDomains(documentDir, userDir, true)
if let dirPath = paths.first
{

let pdfURL = URL(fileURLWithPath: dirPath).appendingPathComponent("myfile2.pdf")

view.addSubview(pdfView)

pdfView.autoresizesSubviews = true
pdfView.autoresizingMask = [.flexibleWidth, .flexibleHeight, .flexibleTopMargin, .flexibleLeftMargin]
pdfView.displayDirection = .vertical

//pdfView.autoScales = true

pdfView.displayMode = .singlePageContinuous
pdfView.displaysPageBreaks = true

if let document = PDFDocument(url: pdfURL) {
pdfView.document = document
}

pdfView.maxScaleFactor = 4.0
pdfView.minScaleFactor = pdfView.scaleFactorForSizeToFit

最佳答案

马特帮助我找出问题所在。谢谢马特。请看评论。模拟器中的每个 iOS 设备都有不同的文件夹 ID。当您下载到设备模拟器文档目录时,不要指望它可以在同一文档目录中找到另一个模拟器设备的相同内容。

关于ios - 为什么我的 WKWebview 或 PDFViewer 只能在 iPhone XR 模拟器中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55911098/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com