Keep the following in mind when working with Lightning message service.
Supported Experiences
Lightning message service supports only the following experiences:
-
Lightning Experience standard navigation
-
Lightning Experience console navigation
-
Salesforce mobile app for Aura and Lightning Web Components, but not for Visualforce pages
-
Lightning components used in Experience Builder sites.
note: Lightning Message Service doesn't work with Salesforce Tabs + Visualforce sites or with Visualforce pages in Experience Builder sites.
Aura Components That Don’t Render Aren’t Supported
Lightning message service only supports Aura components that render. You can’t use lightning:messageChannel in an Aura component that uses the background utility item interface. Similarly, Aura components that use lightning:messageChannel can’t call Lightning Message Service methods in the init lifecycle handler because the component hasn’t rendered.
lightning:messageChannel Must Be a Child of aura:component
In a custom Aura component, lightning:messageChannel must be an immediate child of the aura:component tag. It can’t be nested in an HTML tag or another component.
For example, the following code renders without a problem.
<aura:component>
<lightning:messageChannel type="myMessageChannel__c" />
<lightning:card>...</lightning:card>
</aura:component>
This code throws an error when the Aura component tries to render.
<aura:component>
<lightning:card>
<lightning:messageChannel type="myMessageChannel__c" />
</lightning:card>
</aura:component>
Messages are Constrained by iframe Boundary
If your component uses Lightning message service to publish a message, that message is constrained by any iframe boundary. To work around this limitation, use the sforce.one.subscribe() and sforce.one.unsubscribe() methods.
Avoid Dynamically Creating lightning:messageChannel Components in Aura
Do not usecreateComponent() to dynamically create a lightning:messageChannel component in Aura. Dynamically created components may not work as expected. For information on supported ways to create a lightning:messageChannel component, see Create a Message Channel.
See Also