2015-12-30 60 views
0

我正在尝试编写一个程序,当您点击存储在应用程序中的图像时,它会打开一个iMessage,准备发送正文中的图像。它正在工作,只不过图像在文本中显示为一个名称可以使用Dropbox或类似应用程序打开的文件。有没有一种方法可以在文本中真实地显示图像,例如当您从图库中发布照片时?这里是我的消息代码:Swift将图像附加到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

尝试添加'as! UIImage'在PNG陈述的结尾处。那可能对你更好 –

回答

1

试试这个方法。

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

问题是在addAttachmentData函数中作为'filename'参数传递的值。它应该有有效的扩展。即如果您提供png图像数据,则作为'文件名'传递的值应该是'pic.png',而不是'pic'。对于'typeIdentifier',您应该使用kUTTypePNG值(在MobileCoreServices模块中定义)转换为String。