让我的应用程序出现在UIActivityViewController中以突出显示文本?

时间:2017-07-12 06:43:49

标签: ios objective-c share

我想让我的应用程序出现在UIActivityViewController中以进行文本共享,例如Mail,iMessage,Notes,Gmail等等。

例如,当用户在所选文字上点按并点击附件中的任何应用中的“分享”按钮时: enter image description here

我希望我的应用程序出现在UIActivityViewController中,当用户选择我的应用程序时,启动它可以处理所选文本。

enter image description here

所以我尝试过:在Apple文档中搜索。

  • 搜索相关的UTI但我明白UTI仅用于文件,而不是用于简单的NSString(如果我错了,请纠正我)。 我曾与UTI合作过图像,文本文件,pdf等,但我没有与高亮文本共享的解决方案。
  • 阅读UIDocumentInteractionController,再说一次,它对我没用,因为它用于处理文件。
  • 我试图实现Share Extension,但这不是我想要的解决方案,我不需要post弹出窗口,而且我需要在Mail,Notes,iMessage之后共享后启动我的应用程序(关于Apple文档,我们无法仅通过今日扩展程序通过共享扩展启动包含应用程序。)
  • 当然,我在StackOverFlow中搜索了很多,没有找到该问题的解决方案。

那么任何解决方案?谢谢!

1 个答案:

答案 0 :(得分:0)

如果您想通过UIActivityViewController共享文本,则必须使用Share Extension。 要使您的应用程序显示在UIActivityViewController中以共享文本,您必须将此代码/密钥添加到您的共享扩展的Info.plist中: -

<key>NSExtension</key>
<dict>
    <key>NSExtensionAttributes</key>
    <dict>
        <key>NSExtensionActivationRule</key>
        <dict>
            <key>NSExtensionActivationSupportsText</key>
            <true/>
        </dict>
        <key>RequestsOpenAccess</key>
        <true/>
    </dict>
    <key>NSExtensionMainStoryboard</key>
    <string>MainInterface</string>
    <key>NSExtensionPointIdentifier</key>
    <string>com.apple.share-services</string>
</dict>

通过这个你的应用程序将出现在UIActivityViewController中并能够进行文本共享。

并且要避免Post Popup,您必须根据您的要求设计MainInterface.storyboard。