我一整天和昨天晚上都想弄清楚这一点,但没有运气.我可以确认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.
解决方案:
确保您获得了正确的视频网址.右边是来自UIImagePickerController委托方法的信息字典中的键“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也会返回保留错误.另一个尝试是使用键“UIImagePickerControllerMediaURL”,但它也没有成功.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。