我一整天和昨天晚上都想弄清楚这一点,但没有运气.我可以确认LinkShareContent可以工作,但是当我尝试共享视频文件时.它给了我一个错误代码"保留"但没有别的.
这是链接的代码
var content = LinkShareContent(url: URL(string: "https://google.com")!)
showShareDialog(content)
Run Code Online (Sandbox Code Playgroud)
这是视频的代码根本不起作用.
let video = Video(url: url)
var content = VideoShareContent(video: video, previewPhoto: Photo(image: inProgressItem.firstImage, userGenerated: true))
showShareDialog(content)
Run Code Online (Sandbox Code Playgroud)
这将显示控制器上的共享表
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)
}
}
Run Code Online (Sandbox Code Playgroud)
我已经确认视频是在本地路径上,我正在iPhone 8 11.1.2上测试应用程序
有完全相同的问题。它适用于LinkShareContent
但不适用于VideoShareContent
。
解决方案:确保您获得了正确的URL
视频。右边是来自委托方法的字典"UIImagePickerControllerReferenceURL"
中键的 URL 。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)
}
}
}
Run Code Online (Sandbox Code Playgroud)
额外信息:最初我没有使用这个键“UIImagePickerControllerReferenceURL”,因为它已被弃用。Apple 建议使用 UIImagePickerControllerPHAsset 代替。但来自那里的 URL 也会返回reserved
错误。另一种尝试是使用键“UIImagePickerControllerMediaURL”,但也没有成功。
归档时间: |
|
查看次数: |
298 次 |
最近记录: |