2016-09-30 1 views
0

Je passe le message de résumé dans MSMessage, mais quand essayer d'obtenir quand le message reçu à l'autre fin, il renvoie zéro.Comment obtenir le texte récapitulatif MSMessage à partir du message reçu?

Ci-dessous le code pour créer le message.

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 
} 

Envoyer un message à en conversation en cours

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

     print(error) 
    }) 

Maintenant, à l'extrémité de réception

Ici summaryText renvoie nil.

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

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

également lorsque l'utilisateur tape sur un message, puis retourne aussi nul

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

    } 

} 

Quelqu'un a idée, pourquoi cela se produit ou quelque chose ne va pas?

Répondre

2

mai ce sera utile

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

} 

Référence & aidé Source: https://www.hackingwithswift.com/ios10

Et Se référer également: iOS10 iMessage : Unable to insert data into iMessage using MSConversation

+0

Oui, queryItems fonctionne bien pour transmettre des données de messages en utilisant le nom et la paire de valeurs. Merci. – technerd