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

Posted

技术标签:

【中文标题】iOS 在照片框架查询中从 Whatsapp 中排除图像【英文标题】:iOS exclude images from Whatsapp in Photos framework query 【发布时间】:2018-10-26 14:58:33 【问题描述】:

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

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

第二个选项似乎最有希望,可能与位置等其他元数据结合使用(WhatsApp 图像通常会去除此信息)。

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

【问题讨论】:

【参考方案1】:

您可以过滤掉“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

【讨论】:

以上是关于iOS 在照片框架查询中从 Whatsapp 中排除图像的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 7 中从照片应用播放视频

如何使用 Swift 从 iOS 应用程序共享音频/图像到 whatsapp

如何在 swift 4 中从图像选择器获取照片本地 url

如何使用swift在ios上选择和删除诸如whatsapp或iMessage之类的消息

Twilio Whatsapp API 获取客户姓名并显示照片

我们如何在颤振应用程序中从谷歌地图获取特定位置的照片[关闭]