#java #ios #codenameone #share #info.plist
Вопрос:
Мое приложение для Android также разрабатывается для iOS. Для версий iOS Для кросс-платформенных целей у него, конечно, есть ограничения.
Я пытаюсь выполнить простую функцию импорта/экспорта. Мое приложение может обмениваться простыми файлами json.
В настоящее время обмен возможен только с изображениями в CN1. Мне это не полезно, однако я его не тестировал, обычно они помещают файлы во входящие приложения, это нужно проверять в соответствии с вариантами использования.
Отправка электронного письма с помощью метода SendMessage не работает (он блокирует приложение, с вложениями/получателями или без них)
и более того, я хотел бы, чтобы пользователь мог сделать это приятным способом.
Поэтому я использую каталог документов приложения в качестве папки для импорта/экспорта.
Также зарегистрировано пользовательское расширение (это не «.json»).
Вот некоторые подсказки по сборке ios, введенные в систему сборки CN1.
<key>UTExportedTypeDeclarations</key><array> <dict><key>UTTypeDescription</key><string>List of datatype</string><key>UTTypeConformsTo</key><array><string>public.json</string><string>public.database</string><string>public.data</string><string>public.text</string><string>public.content</string></array><key>UTTypeIdentifier</key><string>com.myapp.datatype</string><key>UTTypeTagSpecification</key><dict><key>public.filename-extension</key><array><string>ext</string></array><key>public.mime-type</key><array><string>application/json</string> </array> </dict> </dict> </array>
(выше: «ext» означает мое пользовательское расширение, файл в формате json)
и
ios.UISupportsDocumentBrowser=true
ios.UIFileSharingEnabled=true
(есть также другие подсказки по запросу для обработки файлов и мультимедиа в iOS)
Я протестировал приложение на симуляторе iOS, но папка приложения «Документы» не отображается в приложении «Файлы», как ожидалось, с конкретными подсказками, и файлы с расширением не вызывают приложение (с AppArg в методе запуска) при открытии (код AppArg вместо этого работает в симуляторе CN).
Может быть, есть проблемы с последними версиями iOS? Действительно, я тестирую его на iOS 14, потому что версия Swift еще не готова и будет опубликована позже.
Что можно сделать, чтобы эта функциональность заработала?
Что не так? Какой тест/отладку можно выполнить?
Ответ №1:
UIFileSharingEnabled, похоже, поддерживается: https://developer.apple.com/documentation/bundleresources/information_property_list/uifilesharingenabled
Но корпус неправильный и должен быть ios.fileSharingEnabled=true
таким .
Насколько я могу судить, поддержки нет ios.UISupportsDocumentBrowser
. Откуда вы взяли этот намек на сборку?
Вы должны использовать ios.plistInject
для неподдерживаемых подсказок. Я предлагаю просмотреть полученный проект xcode, чтобы убедиться, что он попал в список.