如何在Swift中从LPLinkMetadata获取图像URL

8
我试图获取与给定URL相关联的图片的URL。使用Apple的LPLinkMetadata,我可以获取URL的标题和描述,但是我无法找出如何访问元数据的图像URL。我可以访问data.imageProvider,但是我不确定如何使用它。
import LinkPresentation

final class URLHelper {

    @available(iOS 13.0, *)
    static func fetchURLPreview(url: URL) {

        let metadataProvider = LPMetadataProvider()

        metadataProvider.startFetchingMetadata(for: url) { (metadata, error) in

            DispatchQueue.main.async {

                if let _ = error {
                    // handle error
                } else if let data = metadata {
                    let urlTitle = data.title
                    let urlImageUrl = data.????????
                }
            }
        }
    }
}
2个回答

3

请查看下面的代码,从LPLinkMetadata中获取图像URL。

let metadataProvider = LPMetadataProvider()
let url = URL(string: "https://www.facebook.com/")!
    
    metadataProvider.startFetchingMetadata(for: url) { metadata, error in
      if error != nil {
        return
      }
    
      metadata?.imageProvider?.loadFileRepresentation(forTypeIdentifier: kUTTypeImage as String, completionHandler: { (url, imageProviderError) in
                if imageProviderError != nil {
                    return
                }
                let myImage = UIImage(contentsOfFile: (url?.path)!)
            })
    
       }

无法在范围内找到‘kUTTypeImage’。 - AndiAna
1
@AndiAna 导入MobileCoreServices - kabucey
你能发布完整的代码来完成这个吗?我无法使其正常工作...它抱怨我的图像没有被使用。 - AndiAna
你正在获取UIImage。而不是图像的URL。 - Kevv Keka

1
let _ = md.imageProvider?.loadObject(ofClass: UIImage.self, completionHandler: { image, err in
                            DispatchQueue.main.async {
                                self?.imageViewWebSite.image = image as? UIImage
                            }
                        })

我无法让它像这样工作。它如何适应上面的代码? - AndiAna

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接