Customize click behaviors (Flutter)

The SDK provides behavior callbacks to customize click behaviors, including those for the video CTA button, product cards, and shopping CTA button.

Customize video overlay CTA button click behavior

Set FireworkSDK.getInstance().onCustomCTAClick to customize video overlay CTA button click behavior. The event type is CustomCTAClickEvent.

FireworkSDK.getInstance().onCustomCTAClick =
    (CustomCTAClickEvent? event) async {
  // Here, you could write codes to navigate to the host app page.
  // For best practices on navigating to the host page,
  // please consult "Navigate to the host app page" below.
};

You could write codes to navigate to the host app page within the callback. For best practices on navigating to the host page, please consult Navigate to the host app page below.

Customize shopping click behaviors

Customize product card click behavior

Set FireworkSDK.getInstance().shopping.onCustomTapProductCard to customize product card click behavior. The event type is CustomTapProductCardEvent.

FireworkSDK.getInstance().shopping.onCustomTapProductCard = 
    (CustomTapProductCardEvent? event) async {
  // Here, you could write codes to navigate to the host app page.
  // For best practices on navigating to the host page,
  // please consult "Navigate to the host app page" below.
}

You could write codes to navigate to the host app page within the callback. For best practices on navigating to the host page, please consult Navigate to the host app page below.

Customize shopping CTA click behavior

Set FireworkSDK.getInstance().shopping.onShoppingCTA to customize shopping CTA click behavior. The event type is ShoppingCTAEvent. And host app can return a ShoppingCTAResult object to tell FireworkSDK the result.

FireworkSDK.getInstance().shopping.onShoppingCTA =
    (ShoppingCTAEvent? event) async {
  // Here, you could write codes to navigate to the host app page.
  // For best practices on navigating to the host page,
  // please consult "Navigate to the host app page" below.

  return ShoppingCTAResult(
    res: ShoppingCTARes.success,
  );
};

You could write codes to navigate to the host app page within the callback. For best practices on navigating to the host page, please consult Navigate to the host app page below.

Set FireworkSDK.getInstance().shopping.onCustomClickLinkButton to customize product link button click behavior. The event type is CustomClickLinkButtonEvent.

FireworkSDK.getInstance().shopping.onCustomClickLinkButton = 
    (CustomTapProductCardEvent? event) async {
  // Here, you could write codes to navigate to the host app page.
  // For best practices on navigating to the host page,
  // please consult "Navigate to the host app page" below.
}

You could write codes to navigate to the host app page within the callback. For best practices on navigating to the host page, please consult Navigate to the host app page below.

Customize cart icon click behavior

Set FireworkSDK.getInstance().shopping.onCustomClickCartIcon to customize cart icon click behavior. The event type is CustomClickCartIconEvent.

FireworkSDK.getInstance().shopping.onCustomClickCartIcon =
                    (event) async {
  // Here, you could write codes to navigate to the host app page.
  // For best practices on navigating to the host page,
  // please consult "Navigate to the host app page" below.
};

You could write codes to navigate to the host app page within the callback. For best practices on navigating to the host page, please consult Navigate to the host app page below.

Set FireworkSDK.getInstance().liveStream.onCustomLinkInteractionClick to customize livestream link interaction click behavior. The event type is CustomLinkInteractionClickEvent.

You could write codes to navigate to the host app page within the callback. For best practices on navigating to the host page, please consult Navigate to the host app page below.

FireworkSDK.getInstance().liveStream.onCustomLinkInteractionClick =
    (CustomLinkInteractionClickEvent? event) async {
  // Here, you could write codes to navigate to the host app page.
  // For best practices on navigating to the host page,
  // please consult "Navigate to the host app page" below.
};

Set FireworkSDK.getInstance().liveStream.onCustomGiveawayTermsAndConditionsClick to customize livestream giveaway terms and conditions click behavior. The event type is CustomGiveawayTermsAndConditionsClickEvent.

You could write codes to navigate to the host app page within the callback. For best practices on navigating to the host page, please consult Navigate to the host app page below.

FireworkSDK.getInstance()
        .liveStream
        .onCustomGiveawayTermsAndConditionsClick =
    (CustomGiveawayTermsAndConditionsClickEvent? event) async {
  // Here, you could write codes to navigate to the host app page.
  // For best practices on navigating to the host page,
  // please consult "Navigate to the host app page" below.
};

Typically, we need to navigate to the host app page when customizing click behaviors. However, the Flutter navigation stack may be obscured by the Firework full-screen player. When the host app navigates to a new Flutter page (for instance, using Navigator.of(context).pushNamed) within the Flutter navigation stack when customizing click behaviors, it will be obscured by the Firework full-screen player.

As illustrated in the following code snippets, you can invoke our APIs to convert the Firework full-screen player (if it exists) into a floating player or close it (if it exists) when customizing click behaviors. This approach ensures that the new Flutter page will not be obscured by the Firework full-screen player.

FireworkSDK.getInstance().shopping.onCustomTapProductCard = 
    (CustomTapProductCardEvent? event) async {
  // Use the following codes to convert the Firework full-screen player (if it exists)
  // into a floating player or close it (if it exists)
  final result =
      await FireworkSDK.getInstance().navigator.startFloatingPlayer();
  if (!result) {
    await FireworkSDK.getInstance().navigator.popNativeContainer();
  }

  // If the context is available, you could also call
  // Navigator.of(context).pushNamed to push the host app page.
  globalNavigatorKey.currentState?.pushNamed('/host_app_page');
}

The above code snippets are based on onCustomTapProductCard. But they are also applicable to other behavior callbacks.

Last updated

Was this helpful?