微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AirDrop 已知 UTI 直接到应用程序而无需先保存到文件?

如何解决AirDrop 已知 UTI 直接到应用程序而无需先保存到文件?

我的 Swift iOS 应用程序可以读取多种不同的文件类型,所有文件类型均由“导入的”UTI 和 info.plist 文件中的匹配文档类型定义。其中两个(GPX 和 KML)在下面的 info.plist 摘录中有详细说明。

我发现,如果我创建自己独特的导出 UTI,例如文件扩展名为“.blah”的“com.mydomain.blah”,并将这样的文件空投到我的设备,那么我的应用程序将启动并处理该文件立即。

但是,如果我空投 GPX 或 KML 文件,那么我设备上的空投只是提供将其保存到“文件”(或启动 AppStore 应用程序)。如果我允许它保存到文件,那么我可以在“文件”中点击它,它会在我的应用中启动。

但是,我希望我的应用能够直接从 AirDrop 启动,而无需先通过文件(或者至少让 AirDrop 提供我的应用作为选项)。

这可能吗?如果是,如何?

(我也尝试过将下面的定义定义为“出口”UTI 而不是“进口”UTI,但没有帮助。)

    <key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeName</key>
            <string>GPS Exchange Format</string>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>LSHandlerRank</key>
            <string>Owner</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>com.topografix.gpx</string>
            </array>
        </dict>
        <dict>
            <key>CFBundleTypeName</key>
            <string>Keyhole MarkuP Language</string>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>LSHandlerRank</key>
            <string>Owner</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>com.google.earth.kml</string>
            </array>
        </dict>
    </array>

    <key>UTImportedTypeDeclarations</key>
    <array>
        <dict>
            <key>UTTypeConformsTo</key>
            <array>
                <string>public.xml</string>
            </array>
            <key>UTTypeDescription</key>
            <string>GPS Exchange Format (GPX)</string>
            <key>UTTypeIconFiles</key>
            <array/>
            <key>UTTypeIdentifier</key>
            <string>com.topografix.gpx</string>
            <key>UTTypeReferenceURL</key>
            <string>http://www.topografix.com/GPX/1/1</string>
            <key>UTTypeTagSpecification</key>
            <dict>
                <key>public.filename-extension</key>
                <array>
                    <string>gpx</string>
                </array>
                <key>public.mime-type</key>
                <array>
                    <string>application/gpx+xml</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>UTTypeConformsTo</key>
            <array>
                <string>public.xml</string>
            </array>
            <key>UTTypeDescription</key>
            <string>Google Earth KML Document</string>
            <key>UTTypeIdentifier</key>
            <string>com.google.earth.kml</string>
            <key>UTTypeReferenceURL</key>
            <string>http://earth.google.com/kml/</string>
            <key>UTTypeTagSpecification</key>
            <dict>
                <key>com.apple.ostype</key>
                <string>GKml</string>
                <key>public.filename-extension</key>
                <array>
                    <string>kml</string>
                </array>
                <key>public.mime-type</key>
                <string>application/vnd.google-earth.kml+xml</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。