【发布时间】:2023-03-13 14:30:02
【问题描述】:
我是 iMessage 应用程序开发的新手。看一些例子,看起来信息从发送者到接收者的信息通过 iMessage 应用程序是通过 URLComponents 传输的。
- 这是在 iMessage 应用程序上发送信息的唯一方式吗?
- 我不熟悉 swift 中的 URLComponents,实际的 URL 是否重要?
谢谢!!
【问题讨论】:
标签: ios swift imessage imessage-extension
我是 iMessage 应用程序开发的新手。看一些例子,看起来信息从发送者到接收者的信息通过 iMessage 应用程序是通过 URLComponents 传输的。
谢谢!!
【问题讨论】:
标签: ios swift imessage imessage-extension
MSMessage 的url 属性是您可以存储自定义数据的地方。
您可以使用iMessageDataKit 库将键值对存储在MSMessage 对象中。它使设置和获取数据变得非常容易,例如:
let message: MSMessage = MSMessage()
message.md.set(value: 7, forKey: "user_id")
message.md.set(value: "john", forKey: "username")
message.md.set(values: ["joy", "smile"], forKey: "tags")
print(message.md.integer(forKey: "user_id")!)
print(message.md.string(forKey: "username")!)
print(message.md.values(forKey: "tags")!)
(免责声明:我是iMessageDataKit的作者)
【讨论】:
您也可以通过原生 swift 使用它:
let layout = MSMessageTemplateLayout()
var components = URLComponents()
let caption = URLQueryItem(name: "caption", value: self.melody)
let decodedMelody = URLQueryItem(name: "melody", value: self.melody)
components.queryItems = [caption, decodedMelody]
let message = MSMessage(session: session ?? MSSession())
layout.image = self.screenImage.image
layout.caption = "Melody built with haptic and vibro."
layout.subcaption = "sent via iVibrio"
message.summaryText = "something summary"
message.url = components.url!
message.layout = layout
这是我的complete example 如何通过 iMessage 应用程序发送数据和图像
【讨论】: