Ios 快速编辑MSMessage URL数据

Ios 快速编辑MSMessage URL数据,ios,swift,imessage,imessage-extension,msmessage,Ios,Swift,Imessage,Imessage Extension,Msmessage,主要问题-如何检查收件人是否已打开MSMessage? 我有一个iMessage扩展,用户可以在其中向收件人发送MSMessage。收到邮件后,收件人应该能够打开邮件并阅读发件人发送的内容(从URL提取邮件) 但是,在阅读一次之后(即在分机关闭时),从那时起打开的消息将告诉他们已经阅读了消息 如何保存信息(最有可能保存在URL中),以便应用程序可以查看收件人是否已经打开过该信息 需要考虑的事情:我看到了一些关于能够使消息过期并整体消失的事情,但听起来用户可以选择保存。如果有一种方法可以自动删除邮

主要问题-如何检查收件人是否已打开MSMessage?

我有一个iMessage扩展,用户可以在其中向收件人发送MSMessage。收到邮件后,收件人应该能够打开邮件并阅读发件人发送的内容(从URL提取邮件)

但是,在阅读一次之后(即在分机关闭时),从那时起打开的消息将告诉他们已经阅读了消息

如何保存信息(最有可能保存在URL中),以便应用程序可以查看收件人是否已经打开过该信息

需要考虑的事情:我看到了一些关于能够使消息过期并整体消失的事情,但听起来用户可以选择保存。如果有一种方法可以自动删除邮件,那也可以

以下是我编码到邮件URL中的信息:

    var queryItems: [URLQueryItem] = []
    let plain: URLQueryItem = URLQueryItem(name: "plainText", value: msgData.plainText)
    let msg: URLQueryItem = URLQueryItem(name: "message", value: msgData.message)
    let read: URLQueryItem = URLQueryItem(name: "read", value: "false")
    queryItems.append(read)
    queryItems.append(plain)
    queryItems.append(msg)
    var components = URLComponents()
    components.queryItems = queryItems
    message.url = components.url!

处理这类事情的唯一可靠方法是在本地数据库(领域)中保存状态,其中消息提供一个持久密钥


我相当肯定,当您收到消息时,您不能将数据推回到url字段中。只有在创建新文件时才可写入。

Realm?我现在肯定会选择CoreData:)我对Realm相当了解,在Xamarin SDK团队工作了两年;-)下一步我还要做一个Android版本,所以数据库兼容性有一个小优点。如果你能做到代码重用,我想Realm是一个不错的选择:)