首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插入消息,iMessage应用程序快捷3

插入消息,iMessage应用程序快捷3
EN

Stack Overflow用户
提问于 2017-09-25 23:32:30
回答 1查看 422关注 0票数 1

因此,基本上,我一直在尝试创建一个非常简单的iMessage应用程序,当按下按钮时,它会向会话中插入一条消息,就像在本教程中所看到的那样:我所面临的唯一问题是,当按下按钮时,它会运行该函数,但是,结果不会发生任何事情,我真的不知道为什么会这样。有一段时间,我一直在努力寻找解决这个问题的有效方法,如果有人能快速查看我的代码,指出我哪里出错了,或者我遗漏了什么,我会非常感激的。任何关于这个话题的帮助都将不胜感激,谢谢。

代码语言:javascript
复制
 @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)

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-20 21:25:50

看上去是对的,试着在结尾打电话解散()?

这是适用于我的代码

代码语言:javascript
复制
@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()
}

以及我是如何创造信息的

代码语言:javascript
复制
// 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
}

链接到完整的示例/代码

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46415637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档