2012-02-02 4 views
1

Я бы хотел, чтобы пользователи могли нажимать ссылки в 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/> 
+0

Я подозреваю, что разница между сайтами, которые работают, и не является типом MIME, с которым они обслуживают файл. Извлеките весь HTTP-ответ, включая заголовки с обоих типов сайтов, и сравните заголовки «Content-Type», которые должны показать, что происходит. Я отвечаю на это с первых принципов HTTP, а не на какой-либо опыт обработки URL-адресов в приложениях iOS, так что я могу это сделать. – Perry

ответ

0

Одна вещь, которая, безусловно, требуется обновление является:

<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

Смежные вопросы