主要问题--如何检查收件人是否已经打开了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!发布于 2019-06-23 12:27:26
处理这类事情的唯一可靠方法是在本地数据库(领域)中保存状态,其中消息提供了一个持久密钥。
我相当肯定,当您收到消息时,您不能将数据推回url字段。只有在创建新的文件时才能写。
https://stackoverflow.com/questions/55113561
复制相似问题