ios - 如何在 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
,但我不确定要通过什么或如何使用该方法。
解决方案
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)!)
})
}
推荐阅读
- php - 在php中调用接口方法时出错
- ruby-on-rails - ActiveRecord::NoDatabaseError: FATAL: role "postgres" does not exist when I try to migrate bd in rails
- r - how to group a column and that the other column is grouped to generate a contingency table in R
- python - 如何在 wx python 中使用文本大小更改文本框的大小?
- deep-learning - 为什么过滤器和要素层具有相同数量的通道?
- android - 从卡片视图访问活动中的按钮
- python - 预测频繁值的出现
- sql - SQL Server Always Encrypted Limitation
- docker - Cannot not restart a docker container with existing mounted host directory
- c - syslog to log a c string containt http request data