如何在 iOS/macOS 云共享相册中为照片附加短数据?

Posted

技术标签:

【中文标题】如何在 iOS/macOS 云共享相册中为照片附加短数据?【英文标题】:How to attach a short data to a photo in iOS/macOS cloud shared album? 【发布时间】:2019-08-19 18:39:54 【问题描述】:

我正在构建一个应用程序,通过 Photos 应用程序的云共享相册在 ios/macOS 用户之间共享照片。我需要用一些带有特定应用参数的数字来描述每张照片。

我正在研究几个想法,但都没有奏效:

    将数字(或字符串)写入 EXIF 或 IPTC 元数据字段

    很遗憾,Apple 云共享相册不包含用户可写的元数据字段

    在照片文件名中插入数字,例如IMG_1234-i1-i2-...-iN.JPEG

    很遗憾,我找不到在“照片”应用中更改照片文件名的方法。

    将整数与照片标识符一起并行保存在 iCloud 中,以便可以使用照片标识符在每台设备上检索数据

    我假设PHObject.localIdentifier 在不同设备上读取的云共享相册中不是持久的。我没有检查这个,但是为什么 identifier 会被称为 local

iOS/macOS Photos 应用的云端共享相册中,有什么方法可以将少量数据绑定到照片上

【问题讨论】:

发表此评论的空间可能有误-但由于您似乎正在将照片添加到云共享相册-您认为您可以查看this related question,因为文档不清楚关于如何上传到 iCloud 共享相册? 【参考方案1】:

根据我在 this answer 中找到的私有 API 的描述,我为 PHAsset 创建了以下扩展:

extension PHAsset 
    var cloudIdentifier: String 
        return (self.value(forKey: "cloudIdentifier") as? String) ?? "?"
    

您现在可以从PHAsset 实例中获得的cloudIdentifier 在共享同一相册的任何设备上的整个云中都是持久的。使用持久的 PHAsset 标识符,可以从最初的问题实施解决方案 #3。

【讨论】:

以上是关于如何在 iOS/macOS 云共享相册中为照片附加短数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何像照片原生应用一样打开相册列表?

Android摄像头相册使用+上传照片至服务器(下篇)

苹果和安卓如何隔空传照片

安卓从手机相册获取照片作为头像缓存地址

百度相册的人脸识别怎么用?

如何复制 PHAsset?