2016-10-24 1 views
0

J'essaie d'envoyer une image avec le message que mon application crée et insère pour l'envoyer à d'autres utilisateurs. L'image sera la même image utilisée dans la propriété layout du message, mais il n'y a apparemment aucun moyen d'accéder à la propriété image sur la disposition du message à la fin de l'utilisateur destinataire.Puis-je encoder un UIImage dans l'URL envoyée avec un MSMessage dans une extension d'application iMessage?

Est-il possible d'envoyer l'image dans l'URL jointe au message, puis de l'accéder à l'instance du second utilisateur de l'application? Comment pourrais-je y aller?

+0

Que diriez-vous juste essayer? Il suffit de passer l'image comme un NSData ou des données (swift 3) et voir ce qui se passe;) UIImage a init fun qui prennent des données – RomOne

+0

La charge utile d'un MSMessage est cependant une URL. Je ne peux pas simplement envoyer ce que je veux avec le message, sinon je pourrais simplement envoyer l'image. –

+0

Vous pouvez convertir l'image en chaîne base64 et l'envoyer via URLQueryItem. J'espère que cela pourrait être utile. –

Répondre

0

Comme système url iMessage prend en charge 5000 caractères comme écrit dans la documentation de pomme: https://developer.apple.com/reference/messages/msmessage/1649739-url

Vous pouvez utiliser convertir votre UIImage à NSData puis convertir NSData en chaîne et envoyer la chaîne dans le schéma d'URL. Pour récupérer, décoder de la chaîne à UIImage.

Par exemple:

let image = UIImage.init(named: "myImage.png") 
let data = UIImagePNGRepresentation(image!) 
let strImageData = data?.base64EncodedString(options: .lineLength64Characters) 

Hope this helps

+0

Merci pour la recommandation, mais j'ai déjà essayé ceci et l'image résulte en une chaîne de caractères 29k, donc elle échoue. –

2

quelques idées:

  1. Mettre en oeuvre CloudKit pour enregistrer/demander l'image (ou une autre solution 'cloud') et utiliser un message. url pour partager l'url de l'image
  2. Si l'image est créée et n'est pas un atout, utilisez le message.url pour obtenir des "instructions" de reconstruction si possible?