如标题所述,我希望我的扩展程序在用户共享 *.wav 文件时显示
我正在尝试弄清楚如何实际使用文档中提到的内容来做到这一点。文档让我觉得我拥有大部分(如果不是全部)我需要的部分,但不知道它们是如何组合在一起的。
我知道我很可能必须构建一个“SUBQUERY(..)”语句,但它去哪里了?如何使用它?
最佳答案
我最终做了以下事情:
对于 NSExtensionActivationRule 键,我将类型从 Dictionary 更改为 String 并输入以下字符串(您可以保留格式,不需要全部内联):
SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.movie" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.audio"
).@count == $extensionItem.attachments.@count
).@count >= 1
你只需要:
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.audio"
但我的扩展程序也支持电影和图像,这就是为什么它也有这些(留给那些可能对如何支持不止一个感到好奇的人。请注意,我已经决定支持更多的音频选项,而不仅仅是波浪作为我最初是在询问。类型可以在这里查找:Uniform Type Identifiers Reference
第一个计数检查确保主机应用中的每个选定项目都符合扩展。
第二次计数检查,末尾的那个用于指示扩展接受 1 个或多个项目(符合)。如果您只想允许您的扩展程序一次处理 1 个项目,您可以输入以下内容:
).@count == 1
或者,如果您想允许多个项目有上限:
).@count < 4
或
).@count <= 3
关于iOS 分享扩展如何支持 *.wav 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29546283/