我想在我的 iOS 应用程序中实现“打开方式...”功能。
有什么方法可以检查此设备上是否有任何应用程序与我要共享的文件扩展名相关联?
如果当前设备上没有应用程序可以打开具有此类扩展名的文件,UIDocumentInteractionController
将不会在单击“打开方式...” 按钮后显示,但是在这种情况下我不想显示这个按钮。
因此问题是:如何检查设备上的任何应用是否可以打开具有特定扩展名的文件?
更新:
例如 UIDocumentInteractionController
有 NSArray
属性 icons
。
它包含可以打开带有我的扩展名的文件的所有应用程序的图像。但如果没有应用程序,它会包含空应用程序的图像。
所以我无法使用 docInteractionController.icons.count == 0
来检查它。我正在寻找其他技巧。”
提前致谢。
最佳答案
尽管 UIDocumentInteractionController
没有提供一种方法来提前发现是否有任何应用程序可以处理文档,-presentOpenInMenuFromRect:
< strong>将返回一个标志,指示是否有任何应用程序可以打开文档。这要求您已经设置并提供了 Controller ,这不是最佳选择。
有一个变通方法,有点hacky但很实用:在你调用“真正的”交互 Controller 之前,使用一个虚拟文档创建一个虚拟 Controller ,然后从窗口的边界。这保证它会“出现”在屏幕外,因此您的用户不会看到它。此时,您已从 -present
返回标志,您可以立即关闭虚拟 Controller ,并继续适本地显示您的 UI。
关于iphone - 如何检查是否有任何应用程序与文件扩展名相关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15408294/