2016-09-30 11 views
0

MSMessageに要約メッセージを渡していますが、メッセージが他端で受信されたときに取得しようとすると、nilを返します。受信メッセージからMSMessageサマリーテキストを取得する方法?

以下は、メッセージの作成コードです。

fileprivate func composeMessage(with url: String, andEventInfo eventInfo: NSDictionary?) -> MSMessage { 

    let message = MSMessage(session:MSSession()) 
    message.url = URL(string: url) 
    message.layout = createTemplateForEvent(eventInfo: eventInfo!) 
    message.summaryText = "SAMPLE MESSAGE" 
    return message 
} 

はここsummaryTextはnilを返す受信側では、

let message = composeMessage(with: url!,andEventInfo: eventInfo) 
    activeConversation?.insert(message, completionHandler: { (error) in 

     print(error) 
    }) 

現在会話中にメッセージを送信します。メッセージのユーザーをタップし、次に、それが

override func willTransition(to presentationStyle: MSMessagesAppPresentationStyle) { 
    guard let conversation = activeConversation else { fatalError("Expected an active converstation") } 

    // Present the view controller appropriate for the conversation and presentation style. 
    if presentationStyle == .expanded { 

     if conversation.selectedMessage != nil { 

      print(conversation.selectedMessage?.summaryText) 

      presentViewController(for: conversation, with: presentationStyle) 
     } 

    } 

} 

nilを返したときに

override func didReceive(_ message: MSMessage, conversation: MSConversation) { 

    print("DID RECEIVE MESSAGE: \(message.summaryText)")   
} 

はまた、任意の一つは、この問題が発生したか、どんなものが間違っている理由のアイデアを持っていますか?

答えて

2

これは参考&役に立つ

override func didReceive(_ message: MSMessage, conversation: MSConversation) { 
// Called when a message arrives that was generated by another instance of this 
// extension on a remote device. 

// Use this method to trigger UI updates in response to the message. 
guard let messageURL = message.url else { return } 
guard let urlComponents = NSURLComponents(url: messageURL, resolvingAgainstBaseURL: false), let queryItems = urlComponents.queryItems else { return } 

print("URL Components", urlComponents) 
print("queryItems", queryItems) 

for item in queryItems { 
    print("Received \(item.name) with value \(item.value)") 
} 

} 

になります可能性があり、ソースを助けた:https://www.hackingwithswift.com/ios10

も参照してください:iOS10 iMessage : Unable to insert data into iMessage using MSConversation

+0

いや、queryItemsは名前と値のペアを使用してメッセージのデータを渡すために適しています。ありがとう。 – technerd

関連する問題