IOS 9 - обязательное расширение общего доступа для получения URL-адреса public.file-url

У меня проблема с расширением общего доступа с двумя разными сценариями в iOS9 (отлично работает с iOS8) --- ( хочет поделиться PDF-файлом):

Сначала перейдите в почтовое приложение с вложением в PDF-файл.

  1. Нажмите и удерживайте вложение PDF, затем выберите мое приложение на общем листе. Мне были предоставлены следующие зарегистрированныеTypeIdentifiers:
registeredTypeIdentifiers: (
    "public.file-url",
    "com.adobe.pdf"
)
  1. Откройте PDF-файл из вложения. Это был открытый PDF-файл в UIDocumentInteractionController. UIDocumentInteractionController предоставляет возможности совместного использования. Если я нажму на значок общего доступа, выберите свое приложение на листе общего доступа. Мне были предоставлены следующие зарегистрированныеTypeIdentifiers:
registeredTypeIdentifiers: (
    "com.adobe.pdf"
)

Что мне делать, чтобы получить "public.file-url" во втором сценарии.

См. экран от второго сценария

Я использую ниже упомянутый SUBQUERY в plist:

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

person Akshar Darji    schedule 28.10.2015    source источник


Ответы (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>
person Rudra    schedule 28.10.2015
comment
Спасибо за ответ, но на самом деле я получаю тот же результат, что и 2-й сценарий. :( - person Akshar Darji; 28.10.2015