问题描述
我的 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 (将#修改为@)