2016-12-02 75 views
2

我的应用程序有一个扩展名。此扩展程序在Safari中可用。当我使用Safari的份额按钮在链接上长按打开的共享菜单中的Safari中未显示的应用程序图标

然后它会打开一个共享面板和我的应用程序图标是存在的。但是,如果我在Safari中按住几秒钟的链接并弹出下面的警告,然后点击Share...按钮,它会打开一个类似的共享面板,我看到有Facebook和Twitter图标,但是我的应用程序图标已丢失。有人知道如何让它出现在共享面板中吗?

这是当我点击打开什么“分享”按钮:

enter image description here

+0

你在添加扩展的应用程序图标? – Venkat

+0

我不确定你的意思,但是如果你问我是否在Safari中启用了应用程序扩展,那么是的。正如我所说当我使用分享按钮时,一切正常 –

+0

我的意思是,你会在你的Xcode项目中添加应用程序图标吗?您需要在Xcode项目中设置共享扩展的应用程序图标。 – Venkat

回答

1

我已经找到了解决办法。在我的扩展程序的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] &gt;= 1 
      )[email protected] &gt;= 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] &gt;= 1 
      )[email protected] &gt;= 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> 
+0

谢谢。你能以XML格式发布info.plist的NSExtension部分吗?我的是这样:'\t NSExtension \t \t \t NSExtensionAttributes \t \t \t \t \t NSExtensionActivationRule \t \t \t \t \t \t \t NS ExtensionActivationSupportsWebURLWithMaxCount \t \t \t \t \t \t \t \t \t \t \t NSExtensionMainStoryboard \t \t MainInterface \t \t NSExtensionPoin tIdentifier \t \t com.apple.share服务 \t ' – zisoft

+0

@zisoft完成。看看 –

+0

很有意思,谢谢!我会尝试的。我假设'public.url'将在URL链接上长按。 – zisoft

相关问题