Расширение для совместного использования PDF в iOS 11

У меня есть следующий набор правил

<dict>
            <key>NSExtensionActivationRule</key>
            <string>
                SUBQUERY (
                extensionItems,
                $extensionItem,
                SUBQUERY (
                $extensionItem.attachments,
                $attachment,
                ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.adobe.pdf" OR
                ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.file-url" OR
                ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text" OR
                ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.text" OR
                ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "pdf" OR
                ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.pdf" OR
                ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url"
                ).@count == $extensionItem.attachments.@count
                ).@count == 1
            </string>
            <key>NSExtensionJavaScriptPreprocessingFile</key>
            <string>JavascriptPreprocessor</string>
        </dict>

и когда я иду в сафари в pdf, в iOS 10 я вижу расширение моего общего доступа, в iOS 11 я его не вижу. Есть ли дополнительный uti-conforms-to, который мне нужно добавить, чтобы он мог работать на iOS 11, о котором кто-нибудь знает?


person Andy Jacobs    schedule 19.10.2017    source источник


Ответы (1)


У меня была точно такая же проблема, и я заметил, что некоторые UTI (например, public.url) отключают UTI pdf. Если вы удалите их, расширение будет отображаться при загрузке PDF-файла с веб-страницы. Другими словами, похоже, что включение одного отключает другое. Мое решение заключалось в том, чтобы вручную найти UTI, который работает как для PDF-файлов, так и для веб-страниц. Если PDF-файл поступает с веб-страницы, эта конфигурация должна работать для вас для iOS 11.0 и предыдущих версий (по крайней мере, она работает в симуляторе с xcode9).

SUBQUERY (
            extensionItems,
            $extensionItem,
            SUBQUERY (
            $extensionItem.attachments,
            $attachment,
            (
            ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url"
            || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.text";
            )
            ).@count == $extensionItem.attachments.@count
            ).@count == 1

ОБНОВЛЕНИЕ: я добавил

|| ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.text"

чтобы расширение было видно Chrome и Firefox в документах html и pdf.

person Ruben Rizzi    schedule 28.10.2017
comment
Это не работает для меня! Отображается во всех URL-адресах, но не в URL-адресе файла PDF - person neo D1; 10.09.2018