iOS Share 扩展如何支持 *.wav 文件

Posted

技术标签:

【中文标题】iOS Share 扩展如何支持 *.wav 文件【英文标题】:iOS Share extension how to support *.wav files 【发布时间】:2015-04-09 18:33:30 【问题描述】:

正如标题所述,我希望在用户共享 *.wav 文件时显示我的扩展程序

我遇到了以下苹果文档: https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html#//apple_ref/doc/uid/TP40014214-CH21-SW8

我正在尝试弄清楚如何实际使用文档中提到的内容来做到这一点。文档让我感觉到我拥有的大部分(如果不是我需要的所有部分),但不是它们如何组合在一起。

我知道我很可能必须构建一个“SUBQUERY(..)”语句,但它在哪里呢?如何使用它?

【问题讨论】:

【参考方案1】:

我最终做了以下事情:

对于 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

【讨论】:

请务必在谓词字符串中错误地使用"not 来使用。这将为您节省大量时间和头痛。 为什么不在谓词中只使用public.data 而不是所有这些类型?它有效... 这不适用于m4a 扩展文件。 :( public.mpeg-4-audioMPEG-4 audio layer (.m4a)public.mpeg-4, public.audio,我的信息来源:escapetech.eu/manuals/qdrop/uti.html @ParthTamane,就像上面的 cmets 一样,确保你的引号没有被你的文本编辑器自动更正。这也可以追溯到 iOS 8,不幸的是我无法确定某些设置是否发生了变化。【参考方案2】:

我想有人想知道如果没有外部 SUBQUERY 的单个项目会是什么样子:

SUBQUERY(
    $extensionItem.attachments, 
    $attachment, 
    ANY $attachment.registeredTypeIdentifiers 
    UTI-CONFORMS-TO "public.audio"
).@count = 1

只需将UTI-CONFORMS-TO "public.audio" 替换为UTI-CONFORMS-TO "public.image"UTI-CONFORMS-TO "public.movie"

【讨论】:

以上是关于iOS Share 扩展如何支持 *.wav 文件的主要内容,如果未能解决你的问题,请参考以下文章

IOS Share扩展:如何从notes帖子中阅读

在 iOS 中,如何从数据中创建音频文件(.wav、.mp3)文件?

如何在 iOS phonegap 应用程序中压缩 wav 文件

在 Red Hat 上的 Firefox 中播放 wav 文件

如何在perl中验证具有给定文件扩展名的多个文件

iOS扩展开发攻略Share Extension