2017-09-25 5 views
1

基本的には、ボタンを押すと、このチュートリアルで見られるようなメッセージを会話に挿入する非常に単純なiMessageアプリケーションを作成しようとしています。私が持っている問題は、ボタンが押されたときに関数が実行されるということですが、結果として何も起こりません。なぜこれが本当にわからないのですか?私はこの問題の解決策を見つけるのに苦労しています。誰かが自分のコードを見て、どこが間違っているのか、何か不足していることを指摘するのに十分親切であれば、本当に感謝します。 。このトピックに関するお手伝いをさせていただきます。ありがとうございます。メッセージを挿入する、iMessage application swift 3

@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) 

} 

答えて

1

それは右に見える、(解任呼び出そう)終わり?

ここで私

@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 
} 

Link to the complete example/code

+0

おかげで見事に働いたメッセージを作成するよために動作するコードです! – imjonu

関連する問題