Отправка и открытие данных в приложении iMessage

Я создаю приложение iMessage для iOS 10, в котором я хотел бы отправить некоторые данные с макетом. Когда пользователь нажимает на отправленный макет, он открывает приложение iMessage и получает доступ к данным, которые также были отправлены. Данные являются строкой.

Должен ли я использовать URL-адрес MSMessage для отправки данных? Когда пользователь нажимает на макет MSMessage в iMessage, как мне снова получить URL?

Спасибо

3 ответа

Решение

Да, вы бы использовали MSMessage.URL отправлять и извлекать данные.

Когда пользователь нажимает на MSMessage, -(void)didBecomeActiveWithConversation:(MSConversation *)conversation будет называться. Вы можете получить доступ к выбранному URL-адресу сообщения через переданный объект MSConversation, например, так NSURL *url = conversation.selectedMessage.URL

В swift 3 вы можете получить URL-адрес из этого переопределенного метода Messageviewcontroller, сохраненный_конверсия является объектом MSConversation

    override func willBecomeActive(with conversation: MSConversation){
        if(savedConversation?.selectedMessage?.url != nil)

           let url = savedConversation?.selectedMessage?.url
           UIApplication.shared.open(url, options: [:], completionHandler: nil)

    }

MSMessage "s url свойство, где вы можете хранить свои пользовательские данные.

Вы также можете использовать библиотеку iMessageDataKit. Это делает настройку и получение данных очень просто, как:

let message: MSMessage = MSMessage()

message.md.set(value: 7, forKey: "user_id")
message.md.set(value: "john", forKey: "username")
message.md.set(values: ["joy", "smile"], forKey: "tags")

print(message.md.integer(forKey: "user_id")!)
print(message.md.string(forKey: "username")!)
print(message.md.values(forKey: "tags")!)

(Отказ от ответственности: я автор iMessageDataKit )

Другие вопросы по тегам