2016-09-30 75 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 
} 

要在当前会话中发送的消息现在

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

     print(error) 
    }) 

,在接收端

这里summaryText返回nil。

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

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

此外,当用户水龙头上的消息,那么也将返回零

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

    } 

} 

任何一个有想法,为什么出现这种情况或任何东西是哪里错了?

回答

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