Как зарегистрировать тип документа, который должен поддерживать сафари iOS?
Я работаю над приложением iOS, у которого есть extenstion, например .vlin
и я хочу, чтобы устройство iOS распознало это расширение. Пока я могу добиться следующих
-
.vlin
поддерживается в почтовом клиенте iphone - в моем приложении
.vlin
открывается файлVlin
.
Я использую cordova и добавил настройки конфигурации в config.xml
- iOs 5 Новая функция «читателя» Safari, как ее использовать для разработчиков?
- Откройте сафари на одной вкладке приложения iPhone
- Как программный доступ к списку чтения Safari из iOS
- Прокрутка iOS Safari вверх не работает на определенных страницах. Зачем?
- Как удалить или захватить событие кнопки выбора даты iOS?
Но почему-то он не работает для браузера 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” }
- iOS 9 safari iframe src с настраиваемой схемой URL не работает
- Открытие веб-браузера Safari при входе в FB через iOS 9
- сохранить EXIF (GPS / DateTimeOriginal) при загрузке изображения HEIF в мобильном сафари
- Включить считыватель Safari на iPhone iOS7
- Программно открывать Safari в режиме чтения
- Пропустить прокрутку div с помощью Safari на iPhone 6+, iPad 3 при увеличении
- Программный выбор текста в поле ввода на устройствах iOS (мобильный Safari)
- Градиент CSS не работает на iOS
One Solution collect form web for “Как зарегистрировать тип документа, который должен поддерживать сафари iOS?”
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