CodenameOne — Совместное использование/импорт файлов через папку приложения «Документы»

#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, чтобы убедиться, что он попал в список.