我正在使用TPPDF库制作PDF.这使得PDF很好,并返回URL,如下所示:

pdfURL=file:///Users/taimoorarif/Library/Developer/CoreSimulator/Devices/8A2723A7-DD69-4551-A297-D30033734181/data/Containers/Data/Application/EE60FB55-13AE-4658-A829-8A85B2B6ED95/tmp/SwiftUI.pdf

如果我在Google Chrome中打开这个URL,这个shows是我的PDF.但是当我try 使用

UIApplication.共享.打开(pdfURL)

它什么也没做.

我还制作了一个UIViewRepresentable PDFKitView:

import SwiftUI
import PDFKit

struct PDFKitView: View {
    var url: URL
    var body: some View {
        PDFKitRepresentedView(url)
    }
}

struct PDFKitRepresentedView: UIViewRepresentable {
    let url: URL
    init(_ url: URL) {
        self.url = url
    }

    func makeUIView(context: UIViewRepresentableContext<PDFKitRepresentedView>) -> PDFKitRepresentedView.UIViewType {
        let pdfView = PDFView()
        pdfView.document = PDFDocument(url: self.url)
        pdfView.autoScales = true
        return pdfView
    }

    func updateUIView(_ uiView: UIView, context: UIViewRepresentableContext<PDFKitRepresentedView>) {
        // Update the view.
    }
}

并将其用作:

PDFKitView(url: URL(string: pdfURL.absoluteString))

它也不起作用.

I know此url是保存此文件的路径.所以,在搜索了这个之后,我试着:

让fileURL=Bundle.主要的url(用于资源:pdfURL,扩展名为:"pdf")!

应用程序在此崩溃并出现错误:

在展开可选值时意外发现nil

这里的question个是我想在我的应用程序中打开这个PDF,无论它是在Safari还是Google Drive打开,但不知道怎么做.那么我如何打开我的PDF?

推荐答案

Bundle.main不是FileManager.Bundle.main用于访问应用程序的资源,例如您使用Xcode添加到项目中的视频和图像.

URL(string:)表示在线URL.要为文件初始化URL,请使用URL(fileURLWithPath: anyURL.path).所以你真正应该做的是:

PDFKitView(url: URL(fileURLWithPath: pdfURL.path))
or
PDFKitView(url: pdfURL)

Ios相关问答推荐

带外部笔划的圆形进度视图

如何在react 本机模块中使用Bundle.main.Path()在SWIFT中导入assets资源

在flatter_riverpod中,如果没有ref对象,我们如何访问提供程序?

如何将 Info.plist 文件添加到 Xcode for admob,错误 添加后会产生多个命令

圆角矩形路径上的蛇形动画

如何在 Mac OS Ventura 中使用 Xcode 13

错误:无法根据成员environmentObject推断上下文基础

我可以使用同一个 Firebase 应用将多个 Flutter 应用添加到一个 Firebase 数据库吗?

如何将 ImageView 放置在 UIView 的中心?

如何在保持纵横比的同时zoom UIView 的内容以适应目标矩形?

有什么方法可以预填充核心数据?

使用未知类型创建图像格式是一个错误与 UIImagePickerController

在 iPhone 应用程序中使用 SSL - 出口合规性

cocoapods中~>的用法是什么

单击 GoogleSignIn 按钮时应用程序崩溃

如何进行键值观察并在 UIView 的框架上获取 KVO 回调?

将视图控制器从一个情节提要移动或复制到另一个情节提要

以编程方式确定 iPhone 是否越狱

在 SKScene 中设置按钮

Xcode 5 和 iOS 7:架构和有效架构