所以基本上我一直在尝试创建一个非常简单的 iMessage 应用程序,当按下按钮时,它会在对话中插入一条消息,有点像本教程中看到的那样:我遇到的唯一问题是,当按下按钮时按下后,它会运行该功能,但是,没有任何结果发生,我真的不确定为什么会出现这种情况。一段时间以来,我一直在努力寻找解决这个问题的方法,如果有人能好心地快速浏览一下我的代码,也许指出我哪里出错了,或者我是否遗漏了一些东西,我将非常感激。任何有关该主题的帮助将不胜感激,谢谢。
@IBAction func funcSend(_ sender: Any) {
let conversation = activeConversation
let session = conversation?.selectedMessage?.session
let layout = MSMessageTemplateLayout()
layout.caption = "Hi there"
var components = URLComponents()
let queryItem = URLQueryItem(name: "key", value: "value")
components.queryItems = [queryItem]
let message = MSMessage(session: session!)
message.layout = layout
message.url = components.url
message.summaryText = "Sent hi there message"
conversation?.insert(message)
}
看起来不错,尝试在最后调用dismiss()?
这是适合我的代码
@IBAction func onSend(_ sender: Any) {
print("sending...")
guard let conversation = activeConversation else { fatalError("Expected a conversation") }
guard let message = composeMessage(session: conversation.selectedMessage?.session)
else { return }
// Add the message to the conversation.
conversation.insert(message) { error in
if let error = error {
print(error)
}
}
// This one
dismiss()
}
以及我如何创建消息
// MARK: Messaging
func composeMessage(session: MSSession? = nil) -> MSMessage? {
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"
if let conversation = activeConversation,
let msg = conversation.selectedMessage{
if msg.senderParticipantIdentifier == conversation.localParticipantIdentifier {
layout.caption = "$\(msg.senderParticipantIdentifier.uuidString) My msg"
}
else{
layout.caption = "$\(msg.senderParticipantIdentifier.uuidString) Edited msg"
}
}
message.url = components.url!
message.layout = layout
return message
}
所以基本上我一直在尝试创建一个非常简单的 iMessage 应用程序,当按下按钮时,它会在对话中插入一条消息,有点像本教程中看到的那样:我遇到的唯一问题是,当按下按钮时按下后,它会运行该功能,但是,没有任何结果发生,我真的不确定为什么会出现这种情况。一段时间以来,我一直在努力寻找解决这个问题的方法,如果有人能好心地快速浏览一下我的代码,也许指出我哪里出错了,或者我是否遗漏了一些东西,我将非常感激。任何有关该主题的帮助将不胜感激,谢谢。