Swift将图像附加到iMessage

时间:2015-12-30 20:54:16

标签: ios swift mfmessagecomposeview

我正在尝试编写一个程序,当您点击存储在应用程序中的图像时,它会打开一个iMessage,身体中的图像已准备好发送。除了图像在文本中显示为具有可以使用Dropbox或类似应用程序打开的名称的文件之外,它正在工作。有没有办法让图像真正出现在文本中,就像你从图书馆发短信一样?这是我的消息的代码:

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

谢谢!

3 个答案:

答案 0 :(得分:3)

以这种方式试试。

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

Swift 4.2 / 5解决方案

const control = enzyme.mount(<Test />);
expect(control.find(<CompToTest />).props().MyProp).toEqual(expectedProp);