CKAsset 获取 PDF 并呈现在 UIWebView Swift3 中

Posted

技术标签:

【中文标题】CKAsset 获取 PDF 并呈现在 UIWebView Swift3 中【英文标题】:CKAsset fetch PDF and present in UIWebView Swift3 【发布时间】:2017-03-02 15:32:22 【问题描述】:

A 有一个包含课程详细信息的 CKRecord,我可以获取所有记录并根据需要在特定视图中操作它们。我对 CKAsset 有一点问题,它是一个 pdf。我的图像 CKAsset 获取并显示在 UIImageView 中工作正常 -

 let coverPhoto = record.object(forKey: "courseImage") as? CKAsset
                        if let asset = coverPhoto 
                            if asset != nil 
                                let photoData : NSData? = NSData(contentsOf:asset.fileURL)
                                self.cseImageView.image = UIImage(data:photoData! as Data)
                            
                        

但是,当涉及到 pdf 时,我不确定如何完成代码 - 这是我的尝试,不完整(由 ????? 表示)

if let asset = record.object(forKey: "courseDocument1") as? CKAsset 
                            if asset != nil 
                                let docData : NSData? = NSData(contentsOf:asset.fileURL)
                        self.couseDocWebView.?????? = (docData, MIMEType:"application/pdf")
                            
                        

我想我的问题是,我是接近还是偏离了目标,如果是这样 - 任何指针?

谢谢

【问题讨论】:

【参考方案1】:

经过多次辩论并尝试了各种脚本,以下代码可在 Swift 3 中运行 -

if let asset = record.object(forKey: "courseDocument1") as? CKAsset 
                            if asset != nil 
                        let doc1Data : NSData? = NSData(contentsOf:asset.fileURL)
                         self.courseDocWebView.load(doc1Data! as Data, mimeType: "application/pdf", textEncodingName: "UTF-8", baseURL: NSURL() as URL)

我认为这只是调用数据并显示来自 CKAsset 路径的引用 URL 的顺序。

【讨论】:

以上是关于CKAsset 获取 PDF 并呈现在 UIWebView Swift3 中的主要内容,如果未能解决你的问题,请参考以下文章

在 Cloud Kit 中获取 CKAsset 的大小

来自 CKAsset 的图像在 Swift 中乱序加载

pdfjs获取渲染结束

如何使用 iText 获取使用多种字体呈现的 pdf

NSData - 写入临时文件/目录

Swift 3 使用 CKAsset 将图像发送到 CloudKit