intercom_flutter 2.1.0

intercom_flutter #

Pub Codemagic build status

Flutter wrapper for Intercom Android and iOS projects.

Usage #

Import package:intercom_flutter/intercom_flutter.dart and use the methods in Intercom class.


import 'package:intercom_flutter/intercom_flutter.dart';

void main() async {
    await Intercom.initialize('appIdHere', iosApiKey: 'iosKeyHere', androidApiKey: 'androidKeyHere');

class App extends StatelessWidget {

    Widget build(BuildContext context) {
        return FlatButton(
            child: Text('Open Intercom'),
            onPressed: () async {
                await Intercom.displayMessenger();

See Intercom Android and iOS package documentation for more information.

Android #


<uses-permission android:name="android.permission.INTERNET"/>

Optional permissions:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.VIBRATE"/>

Enable AndroidX + Jetifier support in your android/ file (see example app):


Push notifications in combination with FCM #

This plugin works in combination with the firebase_messaging plugin to receive Push Notifications. To set this up:

          <action android:name="" />

just above the closing </application> tag.

  • Ask FireBaseMessaging for the FCM token that we need to send to Intercom, and give it to Intercom (so Intercam can send push messages to the correct device):
final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
token = await _firebaseMessaging.getToken();


Now, if either FireBase direct (e.g. by your own backend server) or Intercom sends you a message, it will be delivered your Android phone.

Firebase Background Messages #

If you are handling background messages in firebase_messaging you need to do some extra work for everything to work together:

  1. Remove the above mentioned <service android:name="io.maido.intercom.PushInterceptService" ... from your AndroidManifest.xml.
  2. In your background messages handler, pass the relevant messages to Intercom:
import 'package:intercom_flutter/intercom_flutter.dart' show Intercom;

Future<dynamic> backgroundMessageHandler(Map<String, dynamic> message) async {
    final data = (message['data'] as Map).cast<String, dynamic>();

    if (await Intercom.isIntercomPush(data)) {
        await Intercom.handlePush(data);

    // Here you can handle your own background messages

iOS #

Make sure that you have a NSPhotoLibraryUsageDescription entry in your Info.plist.

2.1.0 #

  • Bump Intercom SDK version to 6.0.0 (thanks @marbarroso)
  • Bump minimum Android supported version to Lollipop (API 21)
  • Bump minimum iOS supported version to iOS 10.0

2.0.7 #

  • Fixed background notifications being swallowed by intercom_flutter in Android (thanks @LinusU)

2.0.6 #

  • Added hideMessenger (thanks @Spikes042)

2.0.5+2 #

  • Fix iOS build error

2.0.5+1 #

  • Fix example project dependencies

2.0.5 #

  • Add displayMessageComposer (thanks @knaeckeKami)
  • Add support for Android 10
  • Add support for iOS 13

2.0.4 #

  • Support for push notifications

2.0.3 #

  • Upgraded Intercom SDK to 5.3
  • Upgraded Kotlin, Android Studio, Gradle and CocoaPods to latest version
  • Upgraded minimum Flutter version to 1.0.0
  • Upgraded minimum Dart version to 2.0.0
  • Fixed iOS warning

2.0.2 #

  • Added logEvent method (thanks @MrAlek)
  • Fixed registerIdentifiedUser (thanks @Spikes042)

2.0.1 #

  • Added argument validation to registerIdentifiedUser (thanks @Zazo032)

2.0.0 #

  • Changed message channel name
  • Added email to user registration

1.0.12 #

  • Added setUserHash (thanks @Spikes042)

1.0.11 #

  • Added unreadConversationCount and setInAppMessagesVisible
  • Migrated to AndroidX (thanks @LeonidVeremchuk and @Zazo032)

1.0.10 #

  • Updated author

1.0.9 #

  • Added support for companies
  • Added support for custom attributes

1.0.8 #

  • Fixed issues with nullability in Intercom Android SDK

1.0.7 #

  • Added Help Center support

1.0.6 #

  • Fixed null check in ObjectiveC

1.0.5 #

  • Fixed ObjectiveC warnings

1.0.4 #

  • Converter Swift code to ObjectiveC

1.0.3 #

  • Updated iOS project to Swift 4.2

1.0.2 #

  • Fixed plugin name in all places

1.0.1 #

  • Fixed ios headers

1.0.0 #

  • Added user attributes (name, email, phone, userId and company)
  • Renamed package to intercom_flutter because of the name clash with Intercom pod

0.0.4 #

  • Fixed pod name in podspec

0.0.3 #

  • Added example project
  • Formatted code
  • Added test

0.0.2 #

  • Changed minimum SDK version to 2.0.0-dev.28.0

0.0.1 #

  • Implemented initialize, registerIdentifiedUser, registerUnidentifiedUser, logout, setLauncherVisibility, displayMessenger on both Android and iOS


intercom_example #

Demonstrates how to use the intercom plugin.

Getting Started #

For help getting started with Flutter, view our online documentation.

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:

  intercom_flutter: ^2.1.0

2. Install it

You can install packages from the command line:

with Flutter:

$ flutter pub get

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:intercom_flutter/intercom_flutter.dart';
Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
Learn more about scoring.

We analyzed this package on Feb 24, 2020, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.7.1
  • pana: 0.13.5
  • Flutter: 1.12.13+hotfix.7

Health issues and suggestions

Document public APIs. (-1 points)

25 out of 25 API elements have no dartdoc comment.Providing good documentation for libraries, classes, functions, and other API elements improves code readability and helps developers find and use your API.


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.7.0 <3.0.0
flutter 0.0.0
Transitive dependencies
collection 1.14.11 1.14.12
meta 1.1.8
sky_engine 0.0.99
typed_data 1.1.6
vector_math 2.0.8
Dev dependencies