我一直试图整天和昨天晚上解决这个问题,但是没有运气。我可以确认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上测试该应用程序
有完全一样的问题。它适用于LinkShareContent
但不适用VideoShareContent
。
解决方案:确保您正确地URL
观看了视频。右边是一个关键的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)
}
}
}
额外信息:最初,我不使用此键“ UIImagePickerControllerReferenceURL”,因为已弃用。苹果建议改用UIImagePickerControllerPHAsset。但是那里的URL也返回reserved
错误。另一种尝试是使用键“ UIImagePickerControllerMediaURL”,但也没有成功。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句