![](https://user-images.githubusercontent.com/236501/85893648-1c92e880-b7a8-11ea-926d-95355b8175c7.png)
Capacitor Intercom
@capacitor-community/intercom
Capacitor community plugin for enabling Intercom capabilities
Maintainers
Installation
Using npm:
npm install @capacitor-community/intercom
Using yarn:
yarn add @capacitor-community/intercom
Sync native files:
npx cap sync
Usage
import { Intercom } from '@capacitor-community/intercom';
import { PushNotifications } from '@capacitor/push-notifications';
PushNotifications.register();
Intercom.registerIdentifiedUser({ userId: 123456 });
Intercom.registerIdentifiedUser({ email: 'test@example.com' });
Intercom.registerIdentifiedUser({ userId: 123456, email: 'test@example.com' });
Intercom.logEvent({ name: 'my-event', data: { pi: 3.14 } });
Intercom.displayMessageComposer({ message: 'Hello there!' });
Intercom.setUserHash({ hmac: 'xyz' });
iOS setup
ionic start my-cap-app --capacitor
cd my-cap-app
npm install —-save @capacitor-community/intercom
mkdir www && touch www/index.html
npx cap add ios
- add intercom keys to capacitor's configuration file
{
…
"plugins": {
"Intercom": {
"iosApiKey": "ios_sdk-xxx",
"iosAppId": "yyy"
}
}
…
}
npx cap open ios
- sign your app at xcode (general tab)
Tip: every time you change a native code you may need to clean up the cache (Product > Clean build folder) and then run the app again.
Android setup
ionic start my-cap-app --capacitor
cd my-cap-app
npm install —-save @capacitor-community/intercom
mkdir www && touch www/index.html
npx cap add android
- add intercom keys to capacitor's configuration file
{
…
"plugins": {
"Intercom": {
"androidApiKey": "android_sdk-xxx",
"androidAppId": "yyy"
}
}
…
}
Now you should be set to go. Try to run your client using ionic cap run android --livereload
.
Tip: every time you change a native code you may need to clean up the cache (Build > Clean Project | Build > Rebuild Project) and then run the app again.
API
loadWithKeys(...)
loadWithKeys(options: { appId?: string; apiKeyIOS?: string; apiKeyAndroid?: string; }) => Promise<void>
Param | Type |
---|
options | { appId?: string; apiKeyIOS?: string; apiKeyAndroid?: string; } |
registerIdentifiedUser(...)
registerIdentifiedUser(options: { userId?: string; email?: string; }) => Promise<void>
Param | Type |
---|
options | { userId?: string; email?: string; } |
registerUnidentifiedUser()
registerUnidentifiedUser() => Promise<void>
updateUser(...)
updateUser(options: IntercomUserUpdateOptions) => Promise<void>
logout()
logout() => Promise<void>
logEvent(...)
logEvent(options: { name: string; data?: any; }) => Promise<void>
Param | Type |
---|
options | { name: string; data?: any; } |
displayMessenger()
displayMessenger() => Promise<void>
displayMessageComposer(...)
displayMessageComposer(options: { message: string; }) => Promise<void>
Param | Type |
---|
options | { message: string; } |
displayHelpCenter()
displayHelpCenter() => Promise<void>
hideMessenger()
hideMessenger() => Promise<void>
displayLauncher()
displayLauncher() => Promise<void>
hideLauncher()
hideLauncher() => Promise<void>
displayInAppMessages()
displayInAppMessages() => Promise<void>
hideInAppMessages()
hideInAppMessages() => Promise<void>
displayCarousel(...)
displayCarousel(options: { carouselId: string; }) => Promise<void>
Param | Type |
---|
options | { carouselId: string; } |
setUserHash(...)
setUserHash(options: { hmac: string; }) => Promise<void>
Param | Type |
---|
options | { hmac: string; } |
setBottomPadding(...)
setBottomPadding(options: { value: string; }) => Promise<void>
Param | Type |
---|
options | { value: string; } |
sendPushTokenToIntercom(...)
sendPushTokenToIntercom(options: { value: string; }) => Promise<void>
Param | Type |
---|
options | { value: string; } |
receivePush(...)
receivePush(notification: IntercomPushNotificationData) => Promise<void>
displayArticle(...)
displayArticle(options: { articleId: string; }) => Promise<void>
Param | Type |
---|
options | { articleId: string; } |
addListener('windowDidShow', ...)
addListener(eventName: 'windowDidShow', listenerFunc: () => void) => Promise<PluginListenerHandle>
Param | Type |
---|
eventName | 'windowDidShow' |
listenerFunc | () => void |
Returns: Promise<PluginListenerHandle>
addListener('windowDidHide', ...)
addListener(eventName: 'windowDidHide', listenerFunc: () => void) => Promise<PluginListenerHandle>
Param | Type |
---|
eventName | 'windowDidHide' |
listenerFunc | () => void |
Returns: Promise<PluginListenerHandle>
removeAllListeners()
removeAllListeners() => Promise<void>
Interfaces
IntercomUserUpdateOptions
Prop | Type |
---|
userId | string |
email | string |
name | string |
phone | string |
languageOverride | string |
customAttributes | { [key: string]: any; } |
IntercomPushNotificationData
Prop | Type |
---|
conversation_id | string |
message | string |
body | string |
author_name | string |
image_url | string |
app_name | string |
receiver | string |
conversation_part_type | string |
intercom_push_type | string |
uri | string |
push_only_conversation_id | string |
instance_id | string |
title | string |
priority | number |
PluginListenerHandle
Prop | Type |
---|
remove | () => Promise<void> |
Notice 🚀
We're starting fresh under an official org. If you were using the previous npm package capacitor-intercom
, please update your package.json to @capacitor-community/intercom
. Check out changelog for more info.
Breaking changes from Capacitor v2 to v3
UserUpdateOptions
option type becomes IntercomUserUpdateOptions
IntercomPlugin
configuration key becomes Intercom
android-apiKey
config key becomes androidApiKey
android-appId
config key becomes androidAppId
ios-apiKey
config key becomes iosApiKey
ios-appId
config key becomes iosAppId
- Switch from CAPBridge to ApplicationDelegateProxy in application events
- remove the whole onCreate initialization from your app's
MainActivity.java
public class MainActivity extends BridgeActivity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- // Initializes the Bridge
- this.init(savedInstanceState, new ArrayList<Class<? extends Plugin>>() {{
- // Additional plugins you've installed go here
- add(IntercomPlugin.class);
- }});
- }
}
License
MIT
Example
Contributors ✨
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!