Вводные сведения о нативных модулях
Иногда приложению React Native требуется доступ к API нативной платформы, который по умолчанию недоступен в JavaScript, например, к нативным API для доступа к Apple Pay или Google Pay. Возможно, вы хотите повторно использовать существующие библиотеки Objective-C, Swift, Java или C++, не переписывая их на JavaScript, или написать высокопроизводительный многопоточный код для задач, таких как обработка изображений.
Система нативных модулей экспортирует экземпляры классов Java/Objective-C/C++ (нативные) в JavaScript (JS) в виде JS-объектов, что позволяет выполнять произвольный нативный код из JS. Хотя мы не ожидаем, что эта функция будет использоваться в обычном процессе разработки, её наличие необходимо. Если React Native не экспортирует нативный API, который требуется вашему JS-приложению, вы должны иметь возможность экспортировать его сами!
Настройка нативного модуля
Существует два способа написания нативного модуля для вашего приложения React Native:
- Непосредственно в проектах iOS/Android вашего приложения React Native
- В качестве пакета NPM, который может быть установлен в качестве зависимости вашими/другими приложениями React Native
В этом руководстве вы сначала пройдете по шагам реализации нативного модуля непосредственно в приложении React Native. Однако нативный модуль, созданный в данном руководстве, может быть распространён в качестве пакета NPM. Если вас интересует этот вариант, ознакомьтесь с руководством Настройка нативного модуля как пакета NPM.
Начало работы
В следующих разделах мы расскажем вам о том, как создать нативный модуль непосредственно в приложении React Native. В качестве предварительного условия вам понадобится приложение React Native. Вы можете следовать шагам здесь, чтобы настроить приложение React Native, если у вас его ещё нет.
Представьте, что вам нужно получить доступ к нативным API календаря iOS/Android из JavaScript в приложении React Native, чтобы создавать события календаря. React Native не экспортирует API JavaScript для взаимодействия с нативными библиотеками календаря. Однако с помощью нативных модулей вы можете написать нативный код, который взаимодействует с нативными API календаря. Затем вы можете вызвать этот нативный код из JavaScript в вашем приложении React Native.
В следующих разделах вы создадите такой нативный модуль календаря для Android и iOS.
© 2022 Facebook Inc.
Licensed under the Creative Commons Attribution 4.0 International Public License.
https://reactnative.dev/docs/native-modules-intro