![]() |
VOOZH | about |
dotnet add package Plugin.Maui.Intercom --version 0.6.0
NuGet\Install-Package Plugin.Maui.Intercom -Version 0.6.0
<PackageReference Include="Plugin.Maui.Intercom" Version="0.6.0" />
<PackageVersion Include="Plugin.Maui.Intercom" Version="0.6.0" />Directory.Packages.props
<PackageReference Include="Plugin.Maui.Intercom" />Project file
paket add Plugin.Maui.Intercom --version 0.6.0
#r "nuget: Plugin.Maui.Intercom, 0.6.0"
#:package Plugin.Maui.Intercom@0.6.0
#addin nuget:?package=Plugin.Maui.Intercom&version=0.6.0Install as a Cake Addin
#tool nuget:?package=Plugin.Maui.Intercom&version=0.6.0Install as a Cake Tool
Plugin.Maui.Intercom provides the ability to add Intercom to your .NET MAUI application using Native Library Interop (NLI).
Both Android and iOS platforms are working.
<img width="403" height="696" alt="Screenshot 2026-01-20 134953" src="https://github.com/user-attachments/assets/9696d97e-87a2-450a-bd76-ed261101f2f0" /> <img width="395" height="505" alt="Screenshot 2026-01-20 124137" src="https://github.com/user-attachments/assets/c4f5a049-cdbe-46fc-bce4-bc1b4260c8d2" />
Available on NuGet.
Install with the dotnet CLI: dotnet add package Plugin.Maui.Intercom, or through the NuGet Package Manager in Visual Studio.
| Platform | Minimum Version Supported |
|---|---|
| iOS | 15+ |
| Android | 5.0 (API 21) |
| Platform | Intercom SDK Version |
|---|---|
| Android | 17.4.1 |
| iOS | Latest via SPM |
Register Intercom in your MauiProgram.cs:
using Plugin.Maui.Intercom;
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.UseIntercom() // Add this line
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
});
return builder.Build();
}
}
Add the following permissions to your Platforms/Android/AndroidManifest.xml:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
No additional configuration is required for iOS.
Initialize Intercom early in your app's lifecycle (e.g., in App.xaml.cs or your main page):
using Plugin.Maui.Intercom;
// Initialize with your Intercom credentials
Intercom.Default.Initialize("your-api-key", "your-app-id");
You can find your API key and App ID in your Intercom settings.
Intercom.Default.Register(
onSuccess: () => Console.WriteLine("User registered successfully"),
onFailure: (error) => Console.WriteLine($"Registration failed: {error}")
);
Intercom.Default.RegisterWithUserId(
"user-123",
onSuccess: () => Console.WriteLine("User registered"),
onFailure: (error) => Console.WriteLine($"Failed: {error}")
);
Intercom.Default.RegisterWithEmail(
"user@example.com",
onSuccess: () => Console.WriteLine("User registered"),
onFailure: (error) => Console.WriteLine($"Failed: {error}")
);
For enhanced security, use Identity Verification:
// Generate the user hash on your server using HMAC-SHA256
// with your Intercom secret key and the user's identifier
Intercom.Default.SetUserHash("hmac-sha256-hash");
// Show messenger without a pre-filled message
Intercom.Default.PresentMessenger(null);
// Show messenger with a pre-filled message
Intercom.Default.PresentMessenger("I need help with...");
Intercom.Default.PresentHelpCenter();
Intercom.Default.PresentSupportCenter();
Intercom.Default.PresentCarousel("carousel-id");
Intercom.Default.SetVisible(true); // Show launcher
Intercom.Default.SetVisible(false); // Hide launcher
// Add 100 pixels of padding from the bottom
Intercom.Default.SetBottomPadding(100);
Intercom.Default.Logout();
⚠️ IMPORTANT: On Windows, you must enable long path support to build the iOS bindings.
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -Value 1 -PropertyType DWORD -ForceFrom the repository root:
.\build.ps1
cd src
dotnet build Plugin.Maui.Intercom.sln
For detailed build instructions, troubleshooting, and development tips, see .
You can also use dependency injection:
// In MauiProgram.cs
builder.Services.AddSingleton<IIntercom>(Intercom.Default);
// In your ViewModel or Page
public class MyViewModel
{
private readonly IIntercom _intercom;
public MyViewModel(IIntercom intercom)
{
_intercom = intercom;
}
public void ShowMessenger()
{
_intercom.PresentMessenger(null);
}
}
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
// Initialize Intercom
Intercom.Default.Initialize("your-api-key", "your-app-id");
}
private void OnLoginClicked(object sender, EventArgs e)
{
// Register user after login
Intercom.Default.RegisterWithUserId(
"user-123",
onSuccess: () =>
{
// Optionally set user hash for identity verification
Intercom.Default.SetUserHash("server-generated-hash");
},
onFailure: (error) =>
{
DisplayAlert("Error", $"Failed to register: {error}", "OK");
}
);
}
private void OnHelpClicked(object sender, EventArgs e)
{
Intercom.Default.PresentMessenger(null);
}
private void OnLogoutClicked(object sender, EventArgs e)
{
Intercom.Default.Logout();
}
}
If you encounter runtime crashes related to NoSuchMethodError in Compose classes, ensure you're using Intercom SDK 17.4.1 or later, which is compatible with AndroidX Compose BOM 2025.11.01.
iOS builds require macOS. The sample project is configured to skip iOS targets on Windows to avoid build errors.
This project could not have come to be without these projects and people, thank you!
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0-android35.0 net9.0-android35.0 is compatible. net9.0-ios18.0 net9.0-ios18.0 is compatible. net10.0-android net10.0-android was computed. net10.0-ios net10.0-ios was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.6.0 | 132 | 1/22/2026 |
| 0.5.9 | 126 | 1/22/2026 |
| 0.5.8 | 124 | 1/21/2026 |
| 0.5.7 | 125 | 1/21/2026 |
| 0.5.4 | 113 | 1/20/2026 |
| 0.0.0-alpha.0.22 | 73 | 1/20/2026 |
| 0.0.0-alpha.0.21 | 79 | 1/20/2026 |