Всем привет!
Представляю вам серию статей о Lightning Message Service — фиче, которая в долгосрочной перспективе поможет вам в интеграции организации с Lightning Experience и облегчит вам жизнь.
А конкретно в этой статье я расскажу о том, что такое Lightning Message Service, для чего он нужен, о специфике, особенностях и ограничениях использования данного сервиса.
Что такое Lightning Message Service?
Lightning Message Service(LMS) - это уникальная Salesforce функция, которая обеспечивает обмен данными между веб-компонентами Visualforce, Aura и Lightning на одной Lightning странице. Чтобы помочь вам понять, как это работает, я хотел бы привести простой пример использования этого сервиса.
Для организации, которая не решается полностью перейти на Lightning Experience и его компоненты Aura и веб-компоненты Lightning, LMS может сделать миграцию более простой и легкой. Благодаря способности LMS обмениваться данными между страницами Visualforce и компонентами Lightning, вы можете превратить эту миграцию из громоздкой задачи в гораздо более удобный процесс. Вместо того, чтобы удалять существующие страницы Visualforce и создавать новые компоненты Lightning, вы можете обновить существующие страницы Visualforce, чтобы они взаимодействовали с новыми компонентами Lightning для предоставления нового функционала.
LMS - это интерфейсное решение, которое работает в пользовательском интерфейсе на стороне клиента, поддерживая всплывающие окна элементов панели служебных программ, а также родительские / дочерние окна iFrame (в основном связанные с Visualforce). Однако важно, чтобы все взаимодействия происходили из одного и того же приложения Lightning Experience (то есть из одной вкладки браузера).
LMS можно рассматривать как стандартную библиотеку публикации-подписки в пользовательском интерфейсе, которая позволяет компонентам в любой части DOM мгновенно взаимодействовать через простой API. Этот API позволяет публиковать сообщения через Lightning Experience, а также подписываться на них независимо от того, откуда они исходят.
LMS основана на новом типе метаданных, который называется Lightning Message Channels. Lightning Message Channels представляют собой простые, упаковываемые компоненты, которые позволяют подписываться и публиковать сообщения через LMS.
Однако у Lightning Message Service есть ограничения. В настоящее время LMS поддерживает следующие возможности:
- Использование стандартной навигации только для Lightning Experience (Lightning Experience standard navigation);
- Использование консольной навигации только для Lightning Experience (Lightning Experience console navigation);
- Использование Salesforce Mobile App для Aura и Lightning веб-компонентов, но не для Visualforce;
- Использование LIghtning компонентов на сайтах Experience Builder. Поддержка сайтов Experience Builder - это бета-версия. LMS не работает с Salesforce Tabs и Visualforce сайтами или с Visualforce страницами на сайтах Experience Builder.
В контейнерах, не поддерживающих LMS, можно использовать pubsub модуль.
Ну а если вы хотите включить LMS в пакеты, которые хотите опубликовать на AppExchange, — доступно использование пакетов как первого (GR 1), так и второго(GP 2) поколения.
Если ваша организация рассматривает возможность обновления до Lightning Experience, или вы уже используете Lightning Experience и заинтересованы в новых доступных функциях, LMS является для вас желанным инструментом. Но для того, чтобы получить доступ к LMS на страницах Visualforce и компонентах Lightning нужно знать, как создать канал сообщений, как публиковать сообщения и как подписаться на этот канал сообщений. Как раз об этом я и расскажу вам в следующей статье, а на данный момент у меня все.
Спасибо за ваше внимание!