如何(以编程方式)判断是否有/没有任何支持打开特定文档类型的注册应用程序?

2024-01-12

Apple 的 UIDocumentInteractionController PresentOpenInMenuFromBarButtonItem:animated: 方法文档指出“如果没有注册的应用程序支持打开文档,则文档交互控制器不会显示菜单。”在我的应用程序中我想显示一个按钮当且仅当设备上有一个应用程序可以打开它。 (我只想要弹出菜单来打开文件的按钮;我不需要快速查看、复制或打印)。就目前情况而言,如果按钮在那里,但没有注册可以打开相关文件的应用程序,则用户会得到点击时不执行任何操作的按钮的不令人满意的体验。

那么 - 我能否查明是否有/没有注册的应用程序支持打开特定文档类型?显然,UIDocumentInteractionController 实例可以发现这一点。有没有公​​共 API 可以找到它?


好的,更多研究揭示了 stackoverflow 用户frenchkiss-开发 https://stackoverflow.com/users/267152/frenchkiss-dev has a solution https://stackoverflow.com/questions/4957980/how-to-check-if-uidocumentinteractioncontroller-will-fail-to-open-document-due-to- 来自比我更仔细地阅读文档和一些横向思考。我下面的代码基于 frenchkiss-dev 的答案,位于 ViewDidAppear 方法中,如果打开然后关闭打开的文件菜单(没有动画)显示没有可以处理打开文件的应用程序,则禁用我的按钮。此代码片段的上下文是 UIDocumentInteractionController 已在 viewDidLoad 中设置并通过 [self docInteractionController] 访问。

BOOL isAnAppToOpenURL = [[self docInteractionController] presentOpenInMenuFromRect:CGRectZero inView:[self view] animated: NO];
[[self docInteractionController] dismissMenuAnimated:NO];

if (!isAnAppToOpenURL)
{
    // iOS think NO app is present on the device that
    // can open the URL set on the UIDocumentInteractionController
    [[self openFileButton] setEnabled:NO];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何(以编程方式)判断是否有/没有任何支持打开特定文档类型的注册应用程序? 的相关文章

  • 无法构建 Saurik 的 ldid 实用程序

    当我执行此命令 make sh 时 我遇到这些错误 构建用于越狱调整开发的 ldid 实用程序 Bilals Mac ldid billy make sh g arch i386 arch x86 64 arch ppc arch armv
  • 使用 iOS 8 自定义键盘发送图像?

    我一直在为 iOS 8 开发自定义键盘 但在尝试使用键盘发送图像时偶然发现了一个问题 我做了一些研究 似乎没有一种简单的方法可以做到这一点UITextDocumentProxy因为只有NSStrings被允许 我是否忽略了使用自定义键盘发送
  • 从 UIImagePickerController 相机视图推送 viewController

    我正在开发一款消息应用程序 类似于 WhatsApp 用户可以互相发送文本和图像消息 当用户想要发送图像时 他可以从相机胶卷中选择一张图像 也可以用相机拍摄一张图像 这就是我介绍的方式UIImagePickerController对于这两种
  • 本地化现有的 iOS 应用程序

    我不敢相信以前没有人问过这个问题 要么是我的编码实践太无组织性 要么是我没有使用正确的关键字 How can I localize an existing iOS app that does not use NSLocalizedStrin
  • Swift Generics 在使用继承时不会实例化泛型

    我有课Alpha and Berry class Alpha class Berry Alpha 我有一个使用继承及其泛型的函数 func myFunc
  • NSString – 静态还是内联?有性能提升吗?

    如果我写的话会有任何性能提升吗 NSString helloStringWithName NSString name static NSString formatString Hello return NSString stringWith
  • iPhone 应用程序中的异步、同步、线程

    我正处于一个应用程序的设计阶段 该应用程序将利用 REST Web 服务 并且在使用异步 同步和线程方面遇到了困境 这是场景 假设您有三个选项可供深入研究 每个选项都有自己的基于 REST 的资源 我可以使用同步请求延迟加载每个请求 但这会
  • 使用 iPhone 中的地图视图读取当前位置名称

    我读取了当前位置的纬度和经度值 然后成功将该位置固定在 iPhone 中 现在我想使用这个纬度和经度值读取该地名 我使用以下代码来读取查找当前位置 void mapView MKMapView mapView1 didUpdateUserL
  • 如何在 Firebase 控制台中使用 Apple 新的 APN .p8 证书

    随着最近 Apple 开发者帐户的升级 我面临着一个困难 在尝试创建推送通知证书时 它为我提供了 p8 证书 而不是可以导出到 p12 的 APNs 证书 Firebase 控制台仅接受 p12 证书 那么我如何从这些新的 p8 证书中获取
  • iPhone 的电子书框架

    我有一本书想作为 iPhone 应用程序发布 有谁知道我可以使用免费 或便宜 的框架来实现这一目标 换句话说 我想为我的书创建一个独立的 XCODE 项目 其中包含 iPhone 用户将本书作为独立应用程序阅读所需的所有代码 我见过 O R
  • Parse.com 从相关 PFObject 获取 PFUser

    我正在将照片保存为 PFObject 解析 并使用 PFUser currentUser 用户 ID 作为其键之一 我想在表格视图中显示照片以及该 PFUser 的详细信息 但是当我尝试获取用户时 PFUser user self phot
  • UIScrollView setZoomScale 将应用的旋转设置回零

    我已经从事地图替换工作很长一段时间了 整个事情的工作原理是UIScrollView由一个支持CATiledLayer 为了旋转我的地图 我旋转图层本身 使用CATransform3DMakeRotation 到目前为止效果很好 但如果我打电
  • GeoFire Swift 3 - 保存和更新坐标

    我正在尝试使用 GeoFire 将坐标存储到 Firebase 数据库中 我不确定如何更新新坐标 因为它们每秒都会更改 更新 随着childByAutoId 它正在为每辆自行车生成一个新的唯一 ID 如何引用这个唯一的自行车 ID 例如 用
  • 如何在 React Native 中构造 POST 请求主体,而不是使用字符串化的 json,而是使用 json?

    我正在努力用 React Native 替换一些本机代码 预期的 POST 请求 在AFNetworking in Charles应该是这样的 代码片段 NSError err NSData paramData NSJSONSerializ
  • 忽略触摸事件,让其下面的视图处理触摸?

    我有一个用户可以触摸的可拖动视图 但它的某些矩形将没有图像 alpha 0 当用户单击透明区域时 我能够在没有 alpha 信息的情况下构造透明区域 我希望透明区域下方的视图 同一类 来检测触摸 我的策略是当用户触摸透明区域时让视图忽略触摸
  • 将 Firebase 云消息传递与 Windows 应用程序结合使用

    我在 Android 和 iOS 应用程序中使用 Firebase Cloud Messaging 但是我还有此应用程序的 Windows Mac OS 版本 我想保留相同的逻辑 我知道 Firebase Cloud Messaging 可
  • 虚拟乐器 iPhone 应用程序中的 VoiceOver 辅助功能?

    我收到盲人用户的评论 称我的一些声音和音乐相关应用程序只能在关闭 VoiceOver 的情况下使用 在 iOS 设备上启用 VoiceOver 辅助功能后 是否可以启用音乐键盘或鼓垫触摸区域 以便在点击键盘键或虚拟鼓组 等 时可以立即播放音
  • 根据 iOS 版本使用不同的类实现?

    iOS 11 最近添加了一个我想使用的新功能 但我仍然需要支持旧版本的 iOS 有没有一种方法可以将同一个类编写两次 并让较新版本的 iOS 使用该类的一个版本 而旧版本的 iOS 使用另一个版本 注 最初我用的是if available
  • 加载新控制器时,iPhone 横向模式切换到纵向模式

    我的应用程序在横向模式下正确启动并且运行良好 BOOL shouldAutorotateToInterfaceOrientation UIInterfaceOrientation interfaceOrientation if interf
  • iOS - UITableViewCell 使文本加粗

    我有一个字符串 NSString userInfo James Johnson james 我想做的就是大胆James Johnson并保留 james正常字体 所以我尝试过的是使用NSAttributedString但为了完成这个过程 我

随机推荐

  • 如何检查模型中是否存在 DbContext.Set

    我遇到的情况是 我可能正在使用多个 DbContext 这些 DbContext 可能包含也可能不包含 SomeEntity 的 DbSet 当然 如果我关闭 SaveChanges 并且该实体不存在 则会出现以下错误 实体类型 SomeE
  • 如何使用 Java 禁用 Selenium WebDriver 中的 Chrome 插件

    Chrome 插件弹出 https i stack imgur com jRBdG png 当我为此应用程序执行自动化代码时 会显示上面的弹出窗口 现在我需要知道如何使用 Java 禁用 Selenium WebDriver 中的 PDF
  • 使用 CMake 链接到 TBB 库

    I have tbb下载并放置在我的存储库目录中 gt tree deps tbb d deps tbb bin cmake templates include serial tbb tbb compat internal machine
  • Laravel 扩展 TestResponse 类

    我正在尝试添加自定义断言TestReponse https laravel com api 5 5 Illuminate Foundation Testing TestResponse html类所以我可以做这样的事情 response t
  • 如何使多个带有 OR 的 LEFT JOIN 完全使用复合索引? (第2部分)

    它用于计算用户进入 离开工作场所时如何扫描指纹的系统 我不知道它的英文怎么称呼 我需要确定用户是否早上迟到 以及用户是否提前下班 This tb scan表包含用户扫描指纹的日期和时间 CREATE TABLE tb scan scperc
  • Swift:如何使用关联的应用程序打开文件?

    我喜欢在 macOS 上使用 Excel 打开 xls 文件 我只找到了 C 的示例 但没有找到 Swift 的示例 附加问题 即使该文件扩展名与 Excel 无关 是否也可以使用 Excel 启动该文件 有NSWorkspace shar
  • linux内存初始化时内核CPU使用率高

    在服务器上引导我的 java 应用程序时 我遇到了 Linux 内核 CPU 消耗高的问题 此问题仅发生在生产中 在开发服务器上一切都是光速 upd9 关于这个问题 有两个疑问 如何修复它 名义动物建议同步并删除所有内容 这确实有帮助 su
  • Delphi XE3 WM_HOTKEY 如何判断HotKey何时被释放?

    我正在尝试在一个并不总是有焦点的通信程序中编写一个 咳嗽按钮 我有用于使麦克风静音和取消静音的代码 MMDevApi 它工作得很好 我设置了一个全局热键 这非常适合设置静音 现在问题来了 如何判断热键何时被释放 我尝试了代码中所示的计时器
  • C 标准库的更安全替代品

    C 标准库在 I O 安全方面是出了名的差劲 许多函数都有缓冲区溢出 gets scanf 或者如果没有给出正确的参数 scanf 等等 每隔一段时间 我就会遇到一位有进取心的黑客 他编写了自己的库 但没有这些缺陷 您见过的这些库中最好的是
  • 如何制作莫里斯条形图动画?

    我正在尝试对莫里斯条形图进行动画处理 莫里斯条形图已显示 但我想要每个条形的动画和不同的颜色 我的代码是 success function response body css cursor default if response statu
  • Webpack 4 模块解析失败:意外字符“@”(1:0)

    当我尝试运行时出现此错误npm run dev将我的 scss 编译为 css 我知道这个问题与 import src scss main scss 中出现错误 模块解析失败 意外字符 1 0 您可能需要适当的加载程序来处理此文件类型 导入
  • 将自定义列表视图与 TextView 和 CheckBox 一起使用,并单选 CheckBox

    听说我使用自定义ListView with TextView and CheckBox 但我希望一次在复选框中进行单一选择 一CheckBox选中后另一项取消选择 使用 BaseAdapter 但这段代码不能正常工作 请给我建议 thnks
  • 如何按照 PKCS#11 将 Microsoft Crypto API 与 USB 适配器一起使用

    我有一家公司提供的 safenet 身份验证 USB 令牌 他们告诉我他们里面有数字公钥证书 他们给了我一个密码和一个软件 通过它我可以看到它可以检测里面的证书 现在我需要访问此令牌的证书 然后我需要使用我的开发代码进行签名 加密和解密 但
  • 如何使用 javascript 或任何库检查用户是否在线?

    我需要一些关于如何使用检查互联网连接的帮助JavaScript or jQuery或任何可用的图书馆 因为我正在开发一个离线应用程序 如果用户离线 我想显示一个版本 如果用户在线 我想显示另一个版本 目前我正在使用这段代码 if navig
  • Pandas 根据条件移动列数据

    I have dataframe看起来像这样 Name Val Rating 0 ABC 123 B 1 DEF 234 B 2 567 B NaN 3 GHI 890 D 但我想通过检查来移动数据 col Name 到下一栏 col Va
  • 将数据从 BeautifulSoup 导出到 CSV

    免责声明 我已经阅读过该领域的许多其他答案 但它们似乎对我不起作用 我希望能够将抓取的数据导出为 CSV 文件 我的问题是如何编写将数据输出到 CSV 的代码 当前代码 import requests from bs4 import Bea
  • t-SNE 在不同的机器上产生不同的结果

    我有大约 3000 个 100D 数据点 我用 t SNE 将它们投影到 2D 每个数据点属于三个类别之一 但是 当我在两台不同的计算机上运行脚本时 我不断得到不一致的结果 当我使用随机种子时 预计会出现一些不一致 但是其中一台计算机不断获
  • 如何通过运行时类型抛出异常?

    我想调用一个可能抛出异常的函数 如果它确实抛出异常 我想捕获它并将异常对象传递给处理函数 处理函数的默认实现只是简单地抛出异常 这是用来说明问题的精简代码 struct base exception exception char const
  • 如何向 StringBuilder 添加一定数量的空格?

    如何向 StringBuilder 添加一定数量 1 到 100 之间 的空格 StringBuilder nextLine new StringBuilder string time Util CurrentTime nextLine A
  • 如何(以编程方式)判断是否有/没有任何支持打开特定文档类型的注册应用程序?

    Apple 的 UIDocumentInteractionController PresentOpenInMenuFromBarButtonItem animated 方法文档指出 如果没有注册的应用程序支持打开文档 则文档交互控制器不会显