【问题标题】:Open a GPX file in my iPhone app, from Safari从 Safari 在我的 iPhone 应用程序中打开 GPX 文件
【发布时间】:2012-02-25 14:55:02
【问题描述】:

我希望用户能够在 Safari 中单击 GPX 文件的链接,并将它们导入我的应用程序。

我有这样的工作 - 我可以访问一些网站,单击 GPX 文件,它会给我在我的应用程序中打开的选项。

但是,某些 GPX 文件(包括我在本地计算机上托管的一个简单 GPX 文件)不会以这种方式打开。在注册 GPX 文件类型时我可能做错了什么?

这是我的 plist 代码:

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeName</key>
        <string>GPSXML File</string>
        <key>LSHandlerRank</key>
        <string>Owner</string>
        <key>CFBundleTypeIconFile</key>
        <string>gaia-icon.png</string>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>public.utf8-plain-text</string>
            <string>com.apple.dt.document.gpx</string>
            <string>com.trailbehind.gpx</string>
        </array>
    </dict>
</array>
<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeIdentifier</key>
        <string>com.trailbehind.gpx</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.mime-type</key>
            <string>text/plain; charset=UTF-8</string>
            <key>public.filename-extension</key>
            <string>gpx</string>
        </dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.content</string>
            <string>public.item</string>
            <string>public.data</string>
            <string>public.xml</string>
            <string>public.text</string>
        </array>
        <key>UTTypeDescription</key>
        <string>GPSXML</string>
    </dict>
</array>
<key>UIFileSharingEnabled</key>
  <true/>

【问题讨论】:

  • 我怀疑工作和不工作的站点之间的区别在于它们提供文件的 MIME 类型。检索整个 HTTP 响应,包括来自两种站点的标头,并比较应该揭示发生了什么的“Content-Type”标头。我是从第一个 HTTP 原则来回答这个问题,而不是从任何有关 iOS 应用程序中 URL 处理的专业知识来回答这个问题,所以这就是我所能做的。
  • 你最后得到的解决方案在iOS13上还能用吗?如果是这样,如果你能分享你的所作所为,我会非常高兴

标签: iphone objective-c ios ipad


【解决方案1】:

肯定需要更新的一件事是:

<key>public.filename-extension</key>
<string>gpx</string>

应该是

<key>public.filename-extension</key>
<array>
    <string>gpx</string>
</array>

根据https://developer.apple.com/library/prerelease/ios/qa/qa1587/_index.html的故障排除提示

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-13
    • 2013-07-07
    • 1970-01-01
    • 2013-03-14
    • 2012-05-16
    • 1970-01-01
    • 2012-04-24
    • 2023-03-10
    相关资源
    最近更新 更多