swift - iMessage 应用程序不会将消息插入事件对话

标签 swift swift3 imessage imessage-extension

我在尝试创建 Message Extension 应用程序时遇到问题。每当我尝试在对话中插入文本时,什么都没有发生。这是我正在使用的:

import UIKit
import Messages

class MessagesViewController: MSMessagesAppViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let sendButton = UIButton(type: UIButtonType.custom)
        sendButton.frame = CGRect(x: view.frame.midX, y: view.frame.midY, width: 100, height: 50)
        sendButton.setTitle("Send", for: UIControlState.normal)
        sendButton.addTarget(self, action: #selector(sendButtonTapped(sender:)), for: UIControlEvents.touchUpInside)
        self.view.addSubview(sendButton)

}



     func sendButtonTapped(sender: UIButton!){

         let layout = MSMessageTemplateLayout()
         layout.caption = "My Survey"
         layout.image = UIImage(named: "myImage")

         let message = MSMessage()
         message.layout = layout

         self.activeConversation?.insert(message, completionHandler: nil)

    }
}

每当我使用这段代码运行它时,什么都没有发生。奇怪的是,如果我将 self.activeConversation? 更改为 self.activeConversation!,应用程序就会崩溃。我不明白为什么会发生这种情况,因为我正在对话并且我的应用已加载。

最佳答案

你能试试这个吗?

func sendButtonTapped(发件人:UIButton!) {

guard let conversation = activeConversation else { fatalError("Expected a  conversation") }

        let session = conversation.selectedMessage?.session ?? MSSession()

        let message = MSMessage(session: session)

        let layout = MSMessageTemplateLayout()
        layout.image = createImageForMessage(value: GlobalData.sharedManager.cardUrl)
        layout.caption = "Caption"
        layout.imageTitle = GlobalData.sharedManager.cardTitle
        layout.imageSubtitle = "Image subtitle"
        layout.trailingCaption = "Trailing caption"
        layout.subcaption = "Subcaption"
        layout.trailingSubcaption = "Trailing subcaption"
        message.layout = layout

        conversation.insert(message) {error in
                  // empty for now
              }
}}

关于swift - iMessage 应用程序不会将消息插入事件对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41399735/

相关文章:

swift - 如何使用 swift 在 UITabBarController 中以编程方式添加选项卡?

ios - Swift-处理TableView多个部分上的自定义复选标记按钮状态

ios - 如何将父应用程序添加到现有的独立 iMessage 应用程序

iphone - 如何打开带有短信的iMessage?

ios - 以一定角度将文本绘制到图像上 [Swift 3]

ios - 在 iOS 10 上,我的应用程序是否可以在激活 iMessage 扩展程序的情况下打开消息应用程序?

swift - 我正在尝试创建一个 UIbarButtonItem,其宽度和高度等于导航栏高度的 70%?

swift - 在 AR 应用程序中可视化表面上的放置点

arrays - Swift - 对具有 bool 值和可选日期的人员数组进行排序

ios - 向水平分页UIScrollView添加图片