首页 > 解决方案 > 如何在 iOS 13 上从 LPMetadataProvider 中获取图像?

问题描述

我想使用LPMetadataProvider(iOS 13 上的新功能)来获取链接的图像表示(例如新闻文章链接的标题图像)。

let provider = LPMetadataProvider()
provider.startFetchingMetadata(for: URL(string: "https://someurl/")!) { (metadata, error) in
    metadata?.imageProvider?.howDoIGetTheImageOut()
})

看起来你可以做到loadDataRepresentation,但 iOS 13 文档似乎更多地表明了使用的建议loadPreviewImage,但我不确定要通过什么或如何使用该方法。

标签: iosios13

解决方案


let metadataProvider = LPMetadataProvider()
let url = URL(string: "https://www.instagram.com/p/B1ZLpsZnwkY/")!

metadataProvider.startFetchingMetadata(for: url) { metadata, error in
  if error != nil {
    return
  }

  let IMAGE_TYPE = kUTTypeImage as String
  metadata?.imageProvider?.loadFileRepresentation(forTypeIdentifier: IMAGE_TYPE, completionHandler: { (url, imageProviderError) in
            if imageProviderError != nil {
                // The fetch failed; handle the error.
                return
            }
            let myImage = UIImage(contentsOfFile: (url?.path)!)
        })

   }

推荐阅读