Реализовано в версии 8.3.9.1818.
Для мобильной платформы мы реализовали механизм внешних компонент. Он позволяет вам создавать внешние компоненты по технологии Native API аналогично тому, как это делается в платформе для персональных компьютеров. Конечно, есть некоторые особенности, связанные с мобильными операционными системами. Но в целом всё очень похоже.
Разрабатывая внешнюю компоненту, вы должны создать её варианты для всех интересующих вас операционных систем, и для всех процессоров мобильных устройств, на которых предполагается её работа. Все эти варианты нужно собрать в ZIP архив, и поместить его в макет конфигурации типа Внешняя компонента (это единственный способ добавить компоненту в конфигурацию). Это новый тип макета, который мы добавили в платформу.
После этого в мобильном приложении вы устанавливаете и подключаете её точно так же, как и в обычной платформе. Например, так:
Когда конфигурация написана, вы через пункты меню Конфигуратора Конфигурация - Мобильное приложение - Записать в файл выгружаете файл 1cem.zip для сборщика мобильных приложений.
В сборщике мобильных приложений мы добавили соответствующую возможность загружать такие архивы:
В целях отладки, вы можете вручную подменять файлы в выгруженном архиве, корректируя поведение собираемых приложений.
Включение необходимых библиотек в конечные приложения сборщик выполняет автоматически при сборке.
ZIP архив внешней компоненты должен содержать набор обязательных файлов. Сборщиком автоматически отключается формирование конечных приложений для операционных систем, для которых нет в поставочном архиве всех обязательных файлов.
В ZIP архив могут входить:
Специфика разработки приложений для iOS не позволяет использовать несистемные динамические библиотеки для публикации в AppStore. Поэтому, разрабатывая вариант внешней компоненты для iOS, вам надо иметь файл динамической библиотеки *.dylib для целей тестирования и отладки. А кроме этого вам понадобится бинарный файл *.a для статической линковки, которую выполнит сборщик мобильных приложений.
Для исключения конфликта имен, код внешней компоненты должен находиться в собственном уникальном пространстве имен. Наименование пространства имен должно соответствовать имени внешней компоненты, или включать его как составляющую. Регистрация компоненты производится статически, при загрузке приложения.
Чтобы разрабатывать вариант внешней компоненты для Windows Runtime, вам потребуется как минимум Windows 8.1 с MS Visual Studio 2013 SP4 (пакет Windows Phone SDK). Результатом разработки должна быть группа динамических библиотек (*.dll) для мобильных устройств и планшетов всех поддерживаемых процессоров.
Разрабатывая вариант внешней компоненты для Android, вы можете писать код на языке программирования c++, а так же можете использовать технологии Java Native Interface. Результатом разработки должна быть группа динамических библиотек (*.so) для всех поддерживаемых процессоров. А если вы используете код Java, то должен присутствовать файл *.apk
Во время публикации приложения в настройках http-сервера необходимо добавить типы MIME для следующих расширений: .so, .apk, .dylib, .a. Тип MIME: application/octet-stream.
Функциональность внешних компонент для мобильных приложений имеет ряд ограничений:
В документацию по созданию внешних компонент мы добавили несколько материалов, которые помогут вам использовать эту технологию в мобильных приложениях.
Во-первых, мы добавили шаблон внешней компоненты для мобильной платформы. Он облегчит вам создание компоненты “с нуля”. А во-вторых, мы добавили пример использования в конфигурации готовой внешней компоненты, разработанной с использованием технологии Native API. С описанием его свойств, методов и событий.