2016-12-30 8 views
1

作成しようとしているMessage Extensionアプリに問題があります。会話にテキストを挿入しようとすると、何も起こりません。これは私が使用しているものです:iMessageアプリはアクティブな会話にメッセージを挿入しません

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!に変更するとアプリがクラッシュするということです。私は会話中で、アプリがロードされているので、なぜこれが起こっているのかわかりません。

+0

activeConversarionがnilであり、あなたはそれをアンラップしようとするので、それはおそらくクラッシュされます。 – mat

+0

@matしかし、なぜそれは無しでしょうか?アプリが読み込まれ、私はiMessageの会話に参加しています。 –

+1

activeConversationとは何ですか?投稿しているコードは、クラッシュがどこから来ているのかを把握するのに十分ではありません。コンソールにエラーがありますか? – mat

答えて

0

これを試すことができますか?

sendButtonTapped FUNC(送信者:!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 
       } 
}} 
関連する問題