Я бы хотел, чтобы пользователи могли нажимать ссылки в Safari, которые являются файлами GPX, и импортировать их в мое приложение.Открыть файл GPX в моем приложении iPhone от Safari
У меня такой вид работы - есть некоторые сайты, на которые я могу пойти, щелкните файл 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, а не на какой-либо опыт обработки URL-адресов в приложениях iOS, так что я могу это сделать. – Perry