6

我有以下规则集

<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>

当我去 safari 阅读 pdf 时,在 iOS 10 中我看到我在 iOS 11 上的共享扩展,我看不到它。是否有额外的 uti-conforms-to 我需要添加到它才能在任何人都知道的 iOS 11 上工作?

4

1 回答 1

4

我遇到了完全相同的问题,我注意到某些 UTI(例如 public.url)禁用了 pdf UTI。如果您删除它们,则在从网页加载 pdf 时会显示扩展名。换句话说,似乎包括一个禁用另一个。我的解决方案是手动查找适用于 pdf 和网页的 UTI。如果 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 文档中看到扩展名。

于 2017-10-28T22:14:32.453 回答