我的应用程序有一个扩展名。此扩展程序在Safari中可用。当我使用Safari的份额按钮在链接上长按打开的共享菜单中的Safari中未显示的应用程序图标
然后它会打开一个共享面板和我的应用程序图标是存在的。但是,如果我在Safari中按住几秒钟的链接并弹出下面的警告,然后点击Share...
按钮,它会打开一个类似的共享面板,我看到有Facebook和Twitter图标,但是我的应用程序图标已丢失。有人知道如何让它出现在共享面板中吗?
这是当我点击打开什么“分享”按钮:
我的应用程序有一个扩展名。此扩展程序在Safari中可用。当我使用Safari的份额按钮在链接上长按打开的共享菜单中的Safari中未显示的应用程序图标
然后它会打开一个共享面板和我的应用程序图标是存在的。但是,如果我在Safari中按住几秒钟的链接并弹出下面的警告,然后点击Share...
按钮,它会打开一个类似的共享面板,我看到有Facebook和Twitter图标,但是我的应用程序图标已丢失。有人知道如何让它出现在共享面板中吗?
这是当我点击打开什么“分享”按钮:
我已经找到了解决办法。在我的扩展程序的plist中有一个名为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"
)[email protected] >= 1
)[email protected] >= 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"
)[email protected] >= 1
)[email protected] >= 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>
谢谢。你能以XML格式发布info.plist的NSExtension部分吗?我的是这样:'\t
@zisoft完成。看看 –
很有意思,谢谢!我会尝试的。我假设'public.url'将在URL链接上长按。 – zisoft
你在添加扩展的应用程序图标? – Venkat
我不确定你的意思,但是如果你问我是否在Safari中启用了应用程序扩展,那么是的。正如我所说当我使用分享按钮时,一切正常 –
我的意思是,你会在你的Xcode项目中添加应用程序图标吗?您需要在Xcode项目中设置共享扩展的应用程序图标。 – Venkat