【问题标题】:Open with - is there something similar for iOS?打开方式 - iOS 有类似的东西吗?
【发布时间】:2018-02-27 12:38:43
【问题描述】:

例如,在 Android 中,我可以从我自己的应用程序(使用 Intents)中打开用户应用程序中的 mp4 文件。在下一个示例中 - 播放视频的意图:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(newVideoPath));
intent.setDataAndType(Uri.parse(newVideoPath), "video/mp4");
startActivity(intent);

iOS 有类似的东西吗?我可以从我的应用程序中打开照片、VLC 或其他播放器(安装在 iPhone/iPad 上)中的(视频)网址

如果是,Swift 中的任何示例?

【问题讨论】:

    标签: ios iphone swift


    【解决方案1】:

    您应该查看Document interaction programming 的文档。

    您可以注册您的应用支持/可以处理的文件类型,然后当用户从文件应用选择特定文件或从另一个应用下载时,系统将提供可以打开此文件的应用列表,包括您的应用。

    【讨论】:

    • 我的应用程序以 mp4 格式录制视频,只有这种文件类型我需要与任何用户预装的可以播放视频的应用程序(照片、VLC、...)一起播放。我会看文档,但我的意思是很容易找到适用于 Android 的示例,而根本没有适用于 iOS 的示例?
    • 啊,那么在这种情况下,您很可能想查看UIDocumentInteractionController。我不知道任何例子,我还不需要在 iOS 中这样做
    【解决方案2】:

    UIActivityViewController 可能适合您的需求。

    例如,

    let url = // URL to your .mp4 file
    let activityVC = UIActivityViewController(activityItems: [url], applicationActivities: nil)
    present(activityVC, animated: true, completion: nil)
    

    【讨论】:

    • 2018-02-27 16:44:22.028603+0200 ExampleApp[1408:759585] *** Terminating app due to uncaught exception 'NSGenericException', reason: 'Your application has presented a UIActivityViewController (<UIActivityViewController: 0x103080a00>). In its current trait environment, the modalPresentationStyle of a
    • activityVC.popoverPresentationController?.sourceView = self.view 修复,但无论如何 - 这是用于文件共享并显示许多应用程序
    • 是的,它不会让你只在视频应用程序中打开,但你可以使用activityVC.excludedActivityTypes 来删除其中一些选项(如电子邮件、发布到 Facebook/Twitter 等)也许更适合您的需求。活动类型文档在这里:developer.apple.com/documentation/uikit/uiactivitytype
    • 我的意思是它除了复制什么都没有给我,我猜iOS真的没有这样的选项,只用于共享/复制
    • 是的,iOS 比 Android 更严格一些。还值得注意的是,为了让应用出现在此列表中,其开发人员需要从头开始实现这些功能。
    猜你喜欢
    • 2011-05-08
    • 2017-07-15
    • 2014-09-22
    • 2010-11-29
    • 2020-03-26
    • 2011-10-18
    • 2023-03-09
    • 2011-04-04
    • 1970-01-01
    相关资源
    最近更新 更多