Автор: неизвестность Jingdong построить команду - Цзян Shangze, JJ
1. Предпосылки
Как операционная система, разработанная Huawei, которая может реализовать взаимосвязь всех вещей, Hongmeng привлекла большое внимание после ее запуска, и люди возлагали на нее большие надежды. И Hongmeng не разочаровал.После официального запуска Harmony 2.0 в этом году для пользователей для обновления, установленная мощность достигла 120 миллионов всего за три месяца, а на недавней конференции разработчиков Huawei компания Huawei объявила об установленной мощности Harmony 2.0.0. превысил 150 млн.
Многие производители приложений постепенно запустили адаптированные приложения Harmony. Taro — это открытое кросс-энд и межплатформенное решение. Многие разработчики с нетерпением ждут переноса возможностей небольших программ в ОС Harmony. Они могут использовать Taro для разработки приложений Harmony && OpenHarmony. .
Инфраструктура разработки Hongmeng Ark обеспечивает веб-подобное программирование и поддерживает использование JS для разработки уровня пользовательского интерфейса.Его синтаксис похож на синтаксис небольших программ. После предварительных исследований мы можем использовать существующую архитектуру Taro для адаптации к Hongmeng.
В июне этого года мы создали новое предложение для поддержки Hongmeng, надеясь достичь трех целей:
- Разработчики могут использовать Taro для разработки приложений Harmony.
- Разработчики могут адаптировать существующие приложения Taro к платформе HarmonyOS.
- Разработчики могут использовать инструмент обратного преобразования Taro для преобразования собственных разработанных апплетов в приложения Taro, а затем адаптировать их к платформе Hongmeng.
В настоящее время Taro и OpenHarmony установили официальное партнерство и были приглашены и установленыКроссплатформенный интерфейсный фреймворк (crossplatform-jsframework) Группа по интересамВ то же время Taro поддерживает внутреннюю связь и обмен информацией с Huawei Hongmeng&&OpenHarmay, у Taro большое количество разработчиков и отличные кейсы, которые могут эффективно дополнить экологию Huawei Hongmeng&&OpenHarmay.
2. Детали реализации
Синтаксис пользовательского интерфейса Hongmeng JS похож на мини-программы, но, в конце концов, их основные принципы различны, и неизбежно много различий. Далее мы кратко представим основные различия между программами Хунмэн и Мини, а также то, как Таро справляется с этими различиями.
1. Сходства и различия между программами Hongmeng и Mini
1.1 Организация проекта
Организация проекта Hongmeng похожа на организацию небольших программ, и есть входные файлы.app.js
, страницы, пользовательские компоненты.
Страницы и пользовательские компоненты состоят из трех типов файлов:
-
.hml
Используется для описания структуры макета. По сравнению с файлом шаблона апплета синтаксис и поддерживаемые возможности немного отличаются. -
.css
Используется для описания стилей страницы. -
.js
Он используется для обработки страницы и взаимодействия с пользователем и по умолчанию поддерживает синтаксис ES6.
1.2 Файл конфигурации
В отличие от файла ввода, файла подкачки и пользовательского компонента, указанных апплетом, каждый из которых соответствует одному файлу конфигурации, для пользовательского интерфейса Hongmeng JS существует только один файл конфигурации.
ХунмэнмаршрутизацияКак и апплет, его можно настроить, и его необходимо настроить в файле конфигурации пользовательского интерфейса JS.
1.3 Стиль
С точки зрения CSS у Hongmeng те же ограничения, что и у RN. Например, блочная модель не поддерживается, каждый компонент поддерживает только некоторые свойства CSS и т. д.
1.4 Компоненты и API
Hongmeng предоставляет ряд многофункциональных компонентов, названия и функции которых немного отличаются от компонентов мини-программ.
API также одинаков.Наборы API этих двух API имеют некоторые пересечения, и есть различия в использовании и функциях.
2. Детали совместимости
2.1 Что может решить Таро?
Taro Adapted to Hongmeng стремится максимально сгладить различия, но в качестве основы ему суждено иметь проблемы, которые оно может и не может решить.
Различия в синтаксисе можно устранить, написав среду выполнения; используйте компоненты и API-интерфейсы HarmonyOS для максимально возможной реализации компонентов и API-интерфейсов спецификации апплета WeChat, чтобы сгладить различия в использовании между ними.
Различия в CSS, компонентах и возможностях API зависят от базовой реализации Hongmeng, которую Таро не может решить.
2.2 Плагин Хунмэн
Работа Таро по совместимости в Хунмэн в основном состоит из@tarojs/plugin-platform-harmony
Плагин завершен, и разработчик может скомпилировать его в приложение Hongmeng, внедрив плагин. В основном он делает следующие адаптации:
а) Шаблон
Студенты, знакомые с Таро, должны знать, что Таро используется в апплете.<template>
Рекурсия тегов для отображения динамического дерева DOM страницы. В Хунмэне нет<template>
, поэтому мы используем пользовательский компонент для рекурсии.
б) время выполнения
Среда выполнения в основном совместима с жизненным циклом и методом обновления данных апплета на стороне Hongmeng.setData
.
в) Компоненты и API
Мы используем собственный синтаксис Hongmeng для инкапсуляции библиотеки компонентов и библиотеки API, которые соответствуют спецификации апплета WeChat. Хотя он совместим с атрибутами мини-программ WeChat, он также сохраняет уникальные атрибуты поддержки Hongmeng.
В настоящее время адаптировано 29 компонентов и 16 типов API. Библиотека примеров компонентов может относиться к:taro-components-sample
3. Схема архитектуры
3. Как использовать
Если вы новый проект, обновите Taro и выберите шаблон Hongmeng;
Старые проекты необходимо настроить вручную следующим образом:
1. Обновите Таро до версии v3.5.0-canary.0
Сначала нужно установитьv3.5.0-canary.0
инструмент командной строки для
npm i -g @tarojs/cli@canary
Затем обновите локальные зависимости проекта, связанные с Таро:package.json
Версия связанных с Таро зависимостей в файле изменена на~3.5.0-canary.0
, а затем переустановите зависимости.
Если установка не удалась или не удалось открыть проект, вы можете удалитьnode_modules,yarn.lock,package-lock.jsonПосле переустановки зависимого попробуйте еще раз.
2. Установите таро, чтобы адаптировать плагин Hongmeng
(1) Установите плагин Hongmeng в проекте Taro.@tarojs/plugin-platform-harmony
$ yarn add --dev @tarojs/plugin-platform-harmony
(2) Добавьте конфигурацию компиляции в config/index.js
config = {
// 配置使用插件
plugins: ['@tarojs/plugin-platform-harmony'],
mini: {
// 如果使用开发者工具的预览器(previewer)进行预览的话,需要使用 development 版本的 react-reconciler。
// 因为 previewer 对长串的压缩文本解析有问题。(真机/远程真机没有此问题)
debugReact: true,
// 如果需要真机断点调试,需要关闭 sourcemap 的生成
enableSourceMap: false
},
// harmony 相关配置
harmony: {
// 【必填】鸿蒙应用的绝对路径
projectPath: path.resolve(process.cwd(), '../MyApplication'),
// 【可选】HAP 的名称,默认为 'entry'
hapName: 'entry',
// 【可选】JS FA 的名称,默认为 'default'
jsFAName: 'default'
}
}
3. Подготовьте операционную среду Hongmeng
Студия HUAWEI DevEco требуется для разработки программного обеспечения Hongmeng, которое предоставляет такие услуги, как создание шаблонов, разработка, компиляция, отладка и публикация.
В основном включают следующее:
(1) Зарегистрируйте учетную запись разработчика
(2) Скачать Установочный пакет Deveco Studio
(3) Запустите DevEco Studio и загрузите HarmonyOS SDK в соответствии с руководством по инструменту.
(4) Создайте новый проект MyApplication JS.
(5) Используйте средство предварительного просмотра или реальную машину для просмотра эффекта приложения.
«Первый взгляд на Хунмэн» «Инструменты разработчика Huawei»"Гонконг Мэн разработка документа"
4. Проект проекта
Команда выполнения
$ taro build —type harmony —watch
Если вы задали путь для упаковки и вывода в проект Hongmeng на шаге 2 (2), вы можете просмотреть эффект применения адаптации Taro к Hongmeng.
testHarmony — это проект JS, созданный вами с помощью DevEco Studio.
Четвертый, последний
Далее мы продолжим улучшать адаптацию Hongmeng, и ожидается, что официальная версия v3.5 будет выпущена в первом квартале 2022 года.
В то же время я также надеюсь, что больше разработчиков в сообществе примут участие в совместном строительстве. Будь то поднятие проблем, публикация на форуме, отправка PR или помощь в создании окружающей среды, это ценный актив для нас. , Давайте сделаем Таро лучше, мощнее.
Команда Taro искренне ценит поддержку каждого по пути, именно из-за ожиданий всех и доверия к тому, что нам призвано идти лучше.
Наконец, адаптация этой версии Hongmeng была завершена совместной командой разработчиков JD.com Inner Hongmeng. Спасибо следующим студентам:@AdvancedCat,@jiaozitang,@huozhongyi123,@troy-sxj,@JSZabc,@crazyonebyone,@evernoteHW,@soulhat,@xueshuai,@LuMeiling
Наконец, если у вас есть какие-либо вопросы, вы можете отсканировать QR-код ниже, чтобы добавить нашего помощника Harmony для обратной связи, спасибо за вашу поддержку!