Skip to content

Latest commit

 

History

History
121 lines (99 loc) · 4.29 KB

File metadata and controls

121 lines (99 loc) · 4.29 KB
nav_title article_title platform page_order description channel toc_headers
In-App Messaging
In-App Messaging for Xamarin
Xamarin
iOS
Android
2
This article covers iOS, Android, and FireOS in-app messaging for the Xamarin platform.
in-app messages
h2

In-app messaging integration

Learn how to set up iOS, Android, and FireOS In-App Messages (IAM) for the Xamarin platform.

Prerequisites

To use this feature, you'll need to integrate the Braze SDK for Xamarin.

Integrating in-app messaging

{% tabs %} {% tab android %}

{% alert tip %} To see an example, check out our sample Xamrin app on GitHub. {% endalert %}

Step 1: Set up in-app message registration

Every activity in your app must be registered with the BrazeInAppMessageManager class. To automatically register in-app messages using the activity lifecycle callback integration, add the following code to the onCreate() method in your Application class:

{% subtabs %} {% subtab JAVA %}

public class MyApplication extends Application {
  @Override
  public void onCreate() {
    super.onCreate();
    registerActivityLifecycleCallbacks(new BrazeActivityLifecycleCallbackListener());
  }
}

{% endsubtab %}

{% subtab KOTLIN %}

class MyApplication : Application() {
  override fun onCreate() {
    super.onCreate()
    registerActivityLifecycleCallbacks(BrazeActivityLifecycleCallbackListener())
  }
}

{% endsubtab %} {% endsubtabs %}

{% alert note %} For the full list of available parameters, see BrazeActivityLifecycleCallbackListener. {% endalert %}

Step 2: Set up a blocklist manager (optional)

To prevent certain activities from displaying in-app messages, use the activity lifecycle callback integration. The following sample code adds two activities to the in-app message registration blocklist: SplashActivity and SettingsActivity.

{% subtabs %} {% subtab JAVA %}

public class MyApplication extends Application {
  @Override
  public void onCreate() {
    super.onCreate();
    Set<Class> inAppMessageBlocklist = new HashSet<>();
    inAppMessageBlocklist.add(SplashActivity.class);
    inAppMessageBlocklist.add(SettingsActivity.class);
    registerActivityLifecycleCallbacks(new BrazeActivityLifecycleCallbackListener(inAppMessageBlocklist));
  }
}

{% endsubtab %}

{% subtab KOTLIN %}

class MyApplication : Application() {
  override fun onCreate() {
    super.onCreate()
    val inAppMessageBlocklist = HashSet<Class<*>>()
    inAppMessageBlocklist.add(SplashActivity::class.java)
    inAppMessageBlocklist.add(SettingsActivity::class.java)
    registerActivityLifecycleCallbacks(BrazeActivityLifecycleCallbackListener(inAppMessageBlocklist))
  }
}

{% endsubtab %} {% endsubtabs %} {% endtab %}

{% tab ios %} {% alert tip %} To see an example, check out our sample Xamrin app on GitHub. {% endalert %}

To use Braze's default in-app message UI, first create a new BrazeInAppMessageUI:

public static BrazeInAppMessageUI? inAppMessageUI = new BrazeInAppMessageUI();

Then, register the BrazeInAppMessageUI as the in-app message presenter when setting up your Braze instance:

braze.InAppMessagePresenter = inAppMessageUI;

Now you can present new in-app messages using Braze's default in-app message UI. {% endtab %} {% endtabs %}

GIF Support

{% multi_lang_include wrappers/gif_support/in_app_messaging.md %}