2015-12-30 3 views
0

Я пытаюсь написать программу, которая при нажатии на изображение, сохраненное в приложении, открывает iMessage с изображением в теле, готовом для отправки. Он работает, за исключением того, что изображение появляется в тексте в виде файла с именем, которое можно открыть с помощью Dropbox или какого-либо подобного приложения. Есть ли способ фактического отображения изображения в тексте, например, когда вы отправляете фотографию из своей библиотеки? Вот код для моего сообщения:Быстрое прикрепление изображения к iMessage

func launchMessageComposeViewController(image: UIImage) { 
     if MFMessageComposeViewController.canSendText() { 
      let messageVC = MFMessageComposeViewController() 
      messageVC.messageComposeDelegate = self 
      var imageData = UIImagePNGRepresentation(image) 
      messageVC.addAttachmentData(imageData!, typeIdentifier: "png", filename: "pic") 
      self.presentViewController(messageVC, animated: true, completion: nil) 
     } 
     else { 
      print("User hasn't setup Messages.app") 
     } 
    } 

Спасибо!

+0

Вы вызываете 'addAttachmentData: typeIdentifier: filename:' ​​неправильно. Пожалуйста, ознакомьтесь с документацией. '' png "' недействительный UTI. – matt

+0

попробуйте добавить 'как! UIImage' в конце представления PNG. Это может работать лучше для вас тогда –

ответ

1

Попробуйте это так.

messageVC.addAttachmentData(
          imageData, 
          typeIdentifier: "public.data", 
          filename: "image.png" 
          ) 
0

Проблема связана со значением, которое передается как параметр «filename» в функции addAttachmentData. Он должен иметь действительное расширение. то есть, если вы предоставляете данные изображения png, значение, переданное как «имя файла», должно быть «pic.png», а не «pic». Также для «typeIdentifier» вы должны использовать значение kUTTypePNG (определенное в модуле MobileCoreServices), переданное в String.

Смежные вопросы