2

我在 iOS9 中使用 2 个不同场景的共享扩展存在问题与 iOS8 一起工作)---(想要共享 PDF):

首先转到带有 PDF 附件邮件的邮件应用程序-

  1. 长按 PDF 附件,然后从共享表中选择我的应用程序。它给了我以下 registeredTypeIdentifiers :
registeredTypeIdentifiers: (
    "public.file-url",
    "com.adobe.pdf"
)
  1. 从附件中打开 PDF。它是在 UIDocumentInteractionController 中打开的 PDF。UIDocumentInteractionController 提供共享功能。如果我单击共享图标,然后从共享表中选择我的应用程序。它给了我以下 registeredTypeIdentifiers :
registeredTypeIdentifiers: (
    "com.adobe.pdf"
)

我应该怎么做才能在第二个场景中获得“public.file-url” 。

看到第二个场景的屏幕不足

我在 plist 中使用下面提到的 SUBQUERY :

SUBQUERY (
          extensionItems,
          $extensionItem,
          SUBQUERY (
                    $extensionItem.attachments,
                    $attachment,

                    (
      ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.file-url" 
      || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.adobe.pdf"
      || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image"
      || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.png"
      || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.jpeg"
      || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.jpeg-2000"

       )

                    ).@count == $extensionItem.attachments.@count
          ).@count == 1
4

1 回答 1

1

为共享扩展自定义文档类型,在关键 NSExtensionActivationRule 下编写谓词,例如:对于 pdf 和图像,我做了以下谓词,最大文档数量为 1。

<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 "com.adobe.pdf"
                || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image"
                || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text"
                || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.png"
                || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.jpeg"
                || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.jpeg-2000"
        )
        ).@count == $extensionItem.attachments.@count
        ).@count == 1</string>
于 2015-10-28T06:30:28.613 回答