在 iMessage 应用程序的对话中存储变量

Store a variable in a conversation in iMessage Apps

我对开发 iMessage 应用程序完全陌生。

我想将一个共享变量(比如说一个 Int)存储到对话中。用例可以是一个递增的整数,每次从对话中的任何参与者发送消息时都会递增。

这可行吗?

我已经搜索过了,但没有找到。

您可以在 URL 中附加共享变量。

//用户发送消息时插入URL .

   let message = MSMessage()
    message.layout = layout
    message.url = URL(string: "application/sharedVariable=X")
    self.activeConversation?.insert(message, completionHandler: { (error) in
        print("error")
    })

您可以从URL上面提取上面的共享变量。

  let url = "http://application/sharedVariable=X" 
  let queryItems = URLComponents(string: url)?.queryItems
  let sharedValue = queryItems?.filter({[=11=].name == "sharedVariable"}).first          
  print(sharedValue?.value)

如果您不想让任何人知道共享变量,那么您可以在发送时加密。

您可以使用 iMessageDataKit 库。它是 setting/getting IntBoolFloatDoubleString 和 [=17] 的一个小而有用的 MSMessage 扩展=] 键的值。

它使设置和获取数据变得非常容易,例如:

let message: MSMessage = MSMessage()

message.md.set(value: 1, forKey: "messageCount")

print(message.md.integer(forKey: "messageCount")!)

(免责声明:我是 iMessageDataKit 的作者)