2

主要问题 - 如何检查收件人是否已打开 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!
4

1 回答 1

0

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

我相当肯定,当您收到消息时,您无法将数据推回 url 字段。只有在创建新的时才可写。

于 2019-06-23T12:27:26.540 回答