我的应用程序有一个扩展。该分机可在Safari中使用。当我使用Safari共享按钮时

然后打开一个共享面板,我的应用图标就在那里。但是,如果我将Safari中的一个链接按住几秒钟,然后弹出以下警报

我点击Share...按钮,然后打开一个类似的分享面板,我看到有Facebook和Twitter图标,但我的应用图标不见了。有人知道如何使它出现在共享面板中吗?
这就是当我点击“分享”的时候打开的东西。“按钮:

发布于 2017-01-11 14:33:16
我找到了解决办法。在我的扩展列表中有一个名为NSExtensionActivationRule的密钥。它属于NSExtensionAttributes字典,反过来又属于NSExtension字典。因此,对于我来说,NSExtensionActivationRule的值如下所示:
<string>SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text"
).@count >= 1
).@count >= 1</string>据我所知,这是$attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text"行,它具有所有的魔力。
完整的NSExtension字典如下:
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationDictionaryVersion</key>
<integer>2</integer>
<key>NSExtensionActivationRule</key>
<string>SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text"
).@count >= 1
).@count >= 1</string>
<key>NSExtensionActivationUsesStrictMatching</key>
<integer>2</integer>
</dict>
<key>NSExtensionMainStoryboard</key>
<string>MainInterface</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.share-services</string>
</dict>https://stackoverflow.com/questions/40931755
复制相似问题