获取 iOS Share/Action 扩展以仅显示单个图像
Getting an iOS Share/Action Extension to show up only for a single image
我在 iOS 应用程序中有一个动作扩展,我只想在用户共享单个图像时使用它。我的 info.plist
中的 NSExtension
键看起来像这样。
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationRule</key>
<dict>
<key>NSExtensionActivationSupportsImagesWithMaxCount</key>
<integer>1</integer>
</dict>
</dict>
<key>NSExtensionMainStoryboard</key>
<string>MainInterface</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.ui-services</string>
</dict>
我使用的唯一激活规则是 NSExtensionActivationSupportsImagesWithMaxCount
,值为 1
。但是,在共享其他内容时,该扩展程序仍会显示。例如,当我在 Safari 中点击操作按钮时它会出现。
Safari情况下,NSExtensionContext
没有图片可以拉出来。
有人知道如何让我的扩展 not 出现在那些情况下吗?
多亏了@Matthew-Bordas,才能让这个工作正常进行。解决方案是使用谓词。
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationRule</key>
<string>SUBQUERY ( extensionItems, $extensionItem, SUBQUERY ( $extensionItem.attachments, $attachment, ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image" ).@count == 1 ).@count == 1</string>
</dict>
<key>NSExtensionMainStoryboard</key>
<string>MainInterface</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.ui-services</string>
</dict>
看起来谓词可以修复它:
我在 iOS 应用程序中有一个动作扩展,我只想在用户共享单个图像时使用它。我的 info.plist
中的 NSExtension
键看起来像这样。
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationRule</key>
<dict>
<key>NSExtensionActivationSupportsImagesWithMaxCount</key>
<integer>1</integer>
</dict>
</dict>
<key>NSExtensionMainStoryboard</key>
<string>MainInterface</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.ui-services</string>
</dict>
我使用的唯一激活规则是 NSExtensionActivationSupportsImagesWithMaxCount
,值为 1
。但是,在共享其他内容时,该扩展程序仍会显示。例如,当我在 Safari 中点击操作按钮时它会出现。
Safari情况下,NSExtensionContext
没有图片可以拉出来。
有人知道如何让我的扩展 not 出现在那些情况下吗?
多亏了@Matthew-Bordas,才能让这个工作正常进行。解决方案是使用谓词。
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationRule</key>
<string>SUBQUERY ( extensionItems, $extensionItem, SUBQUERY ( $extensionItem.attachments, $attachment, ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image" ).@count == 1 ).@count == 1</string>
</dict>
<key>NSExtensionMainStoryboard</key>
<string>MainInterface</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.ui-services</string>
</dict>
看起来谓词可以修复它: