Как зарегистрировать тип документа, который должен поддерживать сафари iOS?

Я работаю над приложением iOS, у которого есть extenstion, например .vlin и я хочу, чтобы устройство iOS распознало это расширение. Пока я могу добиться следующих

  • .vlin поддерживается в почтовом клиенте iphone
  • в моем приложении .vlin открывается файл Vlin .

Я использую cordova и добавил настройки конфигурации в config.xml

Но почему-то он не работает для браузера Safari iOS. Если я попытаюсь открыть файл в Safari iOS, он откроется в самом браузере как текстовый файл. Я хочу, чтобы он был открыт в моем приложении Vlin iOS.

Мой код info.plist и config.xml:

 <platform name="ios"> <preference name="IosLaunchMode" value="singleTask" /> <config-file platform="ios" target="*-Info.plist" parent="UIFileSharingEnabled"> <true /> </config-file> <config-file platform="ios" target="*-Info.plist" parent="CFBundleDocumentTypes"> <array> <dict> <key>CFBundleTypeName</key> <string>com.example.vlin.vlin</string> <key>CFBundleTypeRole</key> <string>Editor</string> <key>LSHandlerRank</key> <string>Owner</string> <key>LSItemContentTypes</key> <array> <string>com.example.vlin.vlin</string> </array> </dict> </array> </config-file> <config-file platform="ios" target="*-Info.plist" parent="UTExportedTypeDeclarations"> <array> <dict> <key>UTTypeConformsTo</key> <array> <string>public.data</string> </array> <key>UTTypeDescription</key> <string>Vlin document</string> <key>UTTypeIdentifier</key> <string>com.example.vlin.vlin</string> <key>UTTypeTagSpecification</key> <dict> <key>public.filename-extension</key> <string>vlin</string> </dict> </dict> </array> </config-file> 

Любая помощь очень ценится, спасибо заранее.

  • info.plist

      <key>UIFileSharingEnabled</key> <true/> <key>CFBundleDocumentTypes</key> <array> <dict> <key>CFBundleTypeName</key> <string>com.example.vlin.vlin</string> <key>CFBundleTypeRole</key> <string>Editor</string> <key>LSHandlerRank</key> <string>Owner</string> <key>LSItemContentTypes</key> <array> <string>com.example.vlin.vlin</string> </array> </dict> </array> <key>UTExportedTypeDeclarations</key> <array> <dict> <key>UTTypeConformsTo</key> <array> <string>public.data</string> </array> <key>UTTypeDescription</key> <string>Vlin document</string> <key>UTTypeIdentifier</key> <string>com.example.vlin.vlin</string> <key>UTTypeTagSpecification</key> <dict> <key>public.filename-extension</key> <string>vlin</string> </dict> </dict> </array> </dict> 

примерный формат файла: invite.vlin

 { "invite”: { "name": “Some College", "identifier": “xxxxxxxxxxxxxxxxx” }, “value”: “xxxxxxxxxxxxxx” } 

EDIT2:

Ваша настоящая проблема заключается в том, что сафари видит ваш .vlin-файл в виде текстового файла и не даст вам возможность открыть его в другом приложении, возможно, если вы настроите сервер должным образом, чтобы служить ему как com.example.vlin.vlin или, возможно, в качестве application/json он должен показать вам диалог с открытием.

В качестве примера вы можете протестировать этот .vlin-файл на моем сервере.

http://jcesarmobile.byethost33.com/test4.vlin

Это не настоящий .vlin-файл, это файл .vlin, зашифрованный и переименованный в .vlin, и сафари показывает диалог открытия с диалогом

РЕДАКТИРОВАТЬ:

Не уверен, почему люди сбрасываются, тег config-file из config.xml не реализован, см. Проблему для его реализации .

Оригинальный ответ:

Вы еще не можете использовать тег config-file внутри файла config.xml (он работает, но не закончен).

Вы можете использовать его в файле plugin.xml, поэтому вам нужно создать «немой» плагин, в котором есть только plugin.xml с этими тегами.

Вы можете заглянуть в этот плагин, который просто использует plugin.xml для записи в Info.plist https://github.com/leecrossley/cordova-plugin-transport-security

  • Разделяйте информацию между приложением iOS и собственным приложением Safari.
  • Как вы обнаруживаете соединение 3G против Wi-Fi на мобильном сафари?
  • Отображение текстурированных 3D-моделей в iOS
  • iOS Safari запускает Scan Credit Card, нажав кнопку
  • Как обнаружить в javascript, если в настоящее время отображается приложение Smart Banner?
  • Пинч и зум не работают на ipad
  • iOS WebApp не показывает загрузочное изображение
  • Hammer.js блокирует события прокрутки на iOS Safari
  • не удалось установить контрольные точки веб-инспектора после обновления до Safari 7.0.4, как локальных, так и удаленных
  • Вспышка белого цвета при изменении ориентации на iOS Safari
  • Экспорт CSV с использованием jqxgrid в браузере Safari и iOS не работает
  • Interesting Posts

    Безопасный способ SDK скрыть клавиатуру iPad, когда текстовое изображение находится в фокусе

    Настройки Значения привязки неправильно привязаны к iPhone

    Приложение Facebook предлагает iOS v4 SDK error

    Получить максимальную ширину uinavigationItem.titleView?

    Облицовочная проблема при архивировании сборки в Appstore

    IOS Sparrow Framework: как предотвратить двойное касание

    не может компилятор json-framework

    kSecTrustResultRecoverableTrustFailure при подключении к https с самозаверяющим сертификатом с использованием NSURLConnection

    «Произошла ошибка ssl, и безопасное подключение к серверу невозможно выполнить» подключение к серверу внутреннего развития только по телефону

    Не все NSUserDefaults восстанавливаются при перезагрузке приложения

    Вывод initWithFrame: self.view.frame 20-пиксельная (строка состояния) проблема раз и навсегда

    Служба уведомлений Apple Push не работает после отправки, но все в песочнице

    Можно ли вызвать собственное диалоговое окно входа в ios Facebook только с веб-страницы (а не с веб-приложения)?

    Возможно ли получить доступ к статусу push-уведомления приложения из самого приложения?

    Устройства Apple поддерживают iOS 4.0, но не многозадачность?

    Давайте будем гением компьютера.