区分文件URL和普通URL

时间:2017-01-16 16:17:33

标签: ios swift3 ios-extensions

我有一个Action Extension,它可以从设备上安装的其他应用程序接收各种类型的文件。为此,Info.plist具有以下条目:

<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 "com.microsoft.bmp" ||
                ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.jpeg" ||
                ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.png" ||
                ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.word.doc" ||
                ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.excel.xls" ||
                ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.poewerpoint.ppt" ||
                ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.file-url" ||
                ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text" ||
                ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url"
            ).@count == $extensionItem.attachments.@count
        ).@count == 1
    </string>
    <key>NSExtensionServiceToolbarIconFile</key>
    <string></string>
</dict>

在这里,我已经征集了我的分机可以接受的文件的UTI。

目前,如果用户点击Safari网页上的Share,我的分机就会显示。但我只想要接受文件而不是网页 因此我删除了ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url"行。现在我没有在浏览器中看到我的扩展程序,但它也从Dropbox,Google Drive等其他应用程序中消失了。

目前作为临时解决方法,我最后过滤了包含.html的网址,并向用户显示一条警告,说明不支持此功能。但是,网络URL没有这些。那么有没有办法,我可以通过Info.plist条目或ViewControler区分文件的网址和网页的网址?

0 个答案:

没有答案