iOS 从照片框架查询中的 Whatsapp 中排除图像



是否可以只查询设备相机拍摄的PHAsset?例如,排除Whatsapp发送给您的图像。

我尝试了以下方法但没有成功: 1. 按资产媒体子类型和源类型筛选 2. 按原始文件名过滤,因为Whatsapp图像通常在文件名中使用UUID。

第二种选择似乎最有希望,可能与其他元数据(如位置(相结合(WhatsApp图像通常会去除这些信息(。

理想情况下,过滤应该发生在PHAsset查询上,并且出于性能原因不需要调用ImageManager.requestImage((。

您可以过滤掉"WhatsApp"相册中的资产。

下面是您可以使用的示例函数(swift 4.2(:

static private func assetIsFromWhatsapp(_ asset : PHAsset) -> Bool {
let collection = PHAssetCollection.fetchAssetCollectionsContaining(asset, with: .album, options: nil)
for index in 0..<collection.count  {
let item = collection.object(at: index)
if item.localizedTitle == "WhatsApp" {
return true
}
}
return false
}

最新更新