【问题标题】:Swift Editing MSMessage URL Data快速编辑 MSMessage URL 数据
【发布时间】:2019-08-02 10:59:29
【问题描述】:

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

【问题讨论】:

    标签: ios swift imessage imessage-extension msmessage


    【解决方案1】:

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

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

    【讨论】:

    • 领域?我现在肯定会选择 CoreData :)
    • 我对 Realm 非常了解,在 Xamarin SDK 团队工作了大约两年 ;-) 我接下来也在做一个 Android 版本,所以数据库兼容性有一个小优点。
    • 好吧,如果你可以做代码复用,我想Realm是个不错的选择:)
    猜你喜欢
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多