通过iMe​​ssage App

时间:2016-10-10 06:41:00

标签: ios swift imessage-extension

在我的iMessage应用程序中,我尝试发送远程视频文件。从文档中我可以读到mediaFileURL对象中的属性MSMessageTemplateLayout应该是设置URL的正确位置

  

媒体文件网址必须是文件网址

这就是我创建MSMessage实例

的方式
let message = MSMessage()
message.shouldExpire = false

let layout = MSMessageTemplateLayout()
layout.mediaFileURL = self.videoURL

message.layout = layout

但是,当我调用insertMessage方法时,我无法获得正确的消息实体(不包含视频)

conversation.insertMessage(message, completionHandler: nil)

我在某处(不是官方来源)读到网址应该是本地网址,是真的吗?

提前感谢您提供任何帮助

添加

我甚至尝试下载内容并设置本地网址,但我的行为相同

这是我尝试的快速实施

let fileURL = storeDirectory.URLByAppendingPathComponent("video-file.mov")!

_ = try? NSFileManager.defaultManager().removeItemAtPath(fileURL.path!)

Alamofire.download(.GET, self.videoURL) { _, _ -> NSURL in
    return fileURL
}.response { _, _, _, error in
    print("Error: \(error)")
    layout.mediaFileURL = fileURL
    print("File URL: \(fileURL)")
    message.layout = layout
    completion(.success(message))
}

当然,错误是nil,文件路径是引用有效视频文件的有效本地路径(我可以通过该路径重现它)

解决

如果有人遇到此问题,请务必首先下载媒体文件。它没有在文档中提及,但它是强制性的。然后,即使在文档中提到音频文件,普通的mp3文件根本不起作用。仍然不知道音频文件的规范是什么。

之后,请确保您的结果正常:在MSMessageLayout中发送媒体文件意味着它已静音,并且您可以在点按时处理详细信息视图。请考虑使用insertAttachment的{​​{1}}方法代替。

0 个答案:

没有答案