获取iOS共享/操作扩展仅显示单个图像

获取iOS共享/操作扩展仅显示单个图像

问题描述:

我在iOS应用程序中有一个操作扩展,我只想在用户共享单个图像时可用。我的info.plist中的NSExtension键看起来像这样。获取iOS共享/操作扩展仅显示单个图像

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

我使用的唯一的激活规则是NSExtensionActivationSupportsImagesWithMaxCount1值。但是,当分享其他内容时,扩展仍然显示出来。例如,当我点击Safari中的操作按钮时,它就会显示出来。

在Safari的情况下,没有图像要从NSExtensionContext中拔出。

任何人有任何想法如何让我的扩展到不是出现在这些情况下?

+0

貌似的p redicate可以修复它: https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html – Midas

+0

http://*.com/questions/34549427/action-extension-activation- rule-predicate-doesnt-hide-the-action-when-multiple – Midas

+0

http://*.com/questions/28654593/how-do-i-set-nsextensionactivationrule-predicates – Midas

感谢@ 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 &quot;public.image&quot;)[email protected] == 1)[email protected] == 1</string> 
 
    </dict> 
 
    <key>NSExtensionMainStoryboard</key> 
 
    <string>MainInterface</string> 
 
    <key>NSExtensionPointIdentifier</key> 
 
    <string>com.apple.ui-services</string> 
 
</dict>