我一整天和昨天晚上都在努力解决这个问题,但没有成功。我可以确认 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)
这将在 Controller 上显示共享表
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 上测试该应用
最佳答案
有完全相同的问题。它适用于 LinkShareContent
但不适用于 VideoShareContent
。
解决方法:
确保您获得了视频的正确 URL
。右边的是来自 UIImagePickerController
委托(delegate)方法的 info
字典中键 "UIImagePickerControllerReferenceURL"
的 URL。
工作代码:
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)
}
}
}
额外信息:最初我没有使用这个键“UIImagePickerControllerReferenceURL”因为它是deprecated . Apple 建议改用 UIImagePickerControllerPHAsset。但是那里的 URL 也返回 reserved
错误。另一种尝试是使用键“UIImagePickerControllerMediaURL”,但也没有成功。
关于facebook - 使用 swift SDK 将视频发布到 Facebook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48431556/