AppStore/iTunes Store应用程序中的NSExtensionItem实际上包含三种类型的附件,即Image、Text和URL。
您可以在开发中首先将您的NSExtensionActivationRule指定为TRUEPREDICATE,这将允许所有类型的附件。
AppStore/iTunes Store应用程序扩展请求的附件结构可以被记录为图像:
因此,您需要在您的扩展信息.plist文件的NSExtensionActivationRule中包含以下键:
- NSExtensionActivationSupportsImageWithMaxCount
- NSExtensionActivationSupportsText
- NSExtensionActivationSupportsWebURLWithMaxCount
更新:
如果您想限制扩展点只显示在iTunes Store上工作的情况下,您可以使用“谓词语句”进行更复杂的过滤。
请参考下面的Apple文档:
https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html#//apple_ref/doc/uid/TP40014214-CH21-SW8
例如:
我想让我的扩展仅在附件满足条件的情况下显示:一个图像、一个纯文本和一个URL,符合上述图像中的条件。我使用以下预测:
SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image"
).@count == 1
).@count == 1
&&
SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url"
).@count == 1
).@count == 1
&&
SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text"
).@count == 1
).@count == 1
我没有尝试筛选附件内部的内容(仅包含“itunes.apple.com”的URL),但我认为您可以使用预测来限制操作表中显示的点扩展,并在在您的视图控制器内执行操作之前进行更多检查(这不是一个完美的解决方案,但如果没有更好的方法来检查附件内容,应该可以工作)。
干杯!