我一直试图弄清楚这一天和昨天晚上,但没有运气。我可以确认LinkShareContent可以工作,但是当我尝试共享视频文件时。它给了我一个错误代码"保留"但没有别的。
这是链接的代码
var content = LinkShareContent(url: URL(string: "https://google.com")!)
showShareDialog(content)
这是视频的代码根本不起作用。
let video = Video(url: url)
var content = VideoShareContent(video: video, previewPhoto: Photo(image: inProgressItem.firstImage, userGenerated: true))
showShareDialog(content)
这将显示控制器上的共享表
Func showShareDialog<C: ContentProtocol>(_ content: C, mode: ShareDialogMode = .shareSheet) {
let dialog = ShareDialog(content: content)
dialog.presentingViewController = self
dialog.mode = mode
do{
try dialog.show()
}
catch (let error){
print(error)
}
}
我已确认该视频位于本地路径上,并且我正在iPhone 8上测试应用程序11.1.2
答案 0 :(得分:2)
有完全相同的问题。它适用于VideoShareContent
,但不适用于URL
。
解决方案:
确保您获得视频的正确"UIImagePickerControllerReferenceURL"
。正确的是来自info
委托方法的UIImagePickerController
字典中的密钥func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String: Any]) {
picker.dismiss(animated: true)
if let videoURL = info["UIImagePickerControllerReferenceURL"] as? URL {
let video = Video(url: videoURL)
let content = VideoShareContent(video: video)
let dialog = ShareDialog(content: content)
dialog.failsOnInvalidData = true
dialog.mode = .native
dialog.presentingViewController = self
do {
try dialog.show()
} catch {
print(error)
}
}
}
的网址。
工作代码:
reserved
额外信息:最初我没有使用此键“UIImagePickerControllerReferenceURL”,因为它是deprecated。 Apple建议使用UIImagePickerControllerPHAsset代替。但是那里的URL也会返回ab.c
错误。另一个尝试是使用键“UIImagePickerControllerMediaURL”,但它也没有成功。