Как зарегистрировать тип документа, который должно поддерживать iOS Safari?
Я работаю над приложением iOS, которое имеет расширение файла, например .vlin
и я хочу, чтобы устройство iOS распознало это расширение. Пока я могу добиться следующего
.vlin
поддерживается в родном почтовом клиенте iphone- щелкающий
.vlin
файл открывается в моемVlin
приложение.
Я использую Cordova и добавил настройки конфигурации в config.xml
Но почему-то это не работает для браузера iOS. Если я пытаюсь открыть файл в iOS Safari, он открывается в самом браузере как текстовый файл. Я хочу, чтобы это открылось в моем 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”
}
1 ответ
EDIT2:
Ваша настоящая проблема заключается в том, что Safari видит ваш файл.vlin в виде текстового файла и не дает возможности открыть его в другом приложении, возможно, если вы правильно настроите сервер для его обслуживания в качестве com.example.vlin.vlin
или, может быть, как application/json
он должен показать вам диалог открытия.
Например, вы можете проверить этот файл.vlin на моем сервере.
http://jcesarmobile.byethost33.com/test4.vlin
Это не настоящий файл.vlin, это файл.vlin, сжатый и переименованный в.vlin, и safari показывает диалог открытия с
РЕДАКТИРОВАТЬ:
Не уверен, почему люди понижают голос, тег config-file из config.xml не реализован, смотрите вопрос для его реализации.
Оригинальный ответ:
Вы не можете использовать тег config-file внутри config.xml (он работает, но не закончен).
Вы можете использовать его в plugin.xml, поэтому вам нужно создать "тупой" плагин, в котором просто есть файл plugin.xml с этими тегами.
Вы можете взглянуть на этот плагин, который просто использует plugin.xml для записи в Info.plist https://github.com/leecrossley/cordova-plugin-transport-security