@capacitor-community/intercom
Capacitor community plugin for enabling Intercom capabilities
|
|
Chatness AI |
| Maintainer | GitHub | Social |
|---|---|---|
| Stewan Silva | stewones | @stewones |
Using npm:
npm install @capacitor-community/intercomUsing yarn:
yarn add @capacitor-community/intercomSync native files:
npx cap syncimport { Intercom } from '@capacitor-community/intercom';
import { PushNotifications } from '@capacitor/push-notifications';
// Register for push notifications from Intercom
PushNotifications.register();
// Register an indetified user
Intercom.registerIdentifiedUser({ userId: 123456 });
Intercom.registerIdentifiedUser({ email: '[email protected]' });
Intercom.registerIdentifiedUser({ userId: 123456, email: '[email protected]' });
// Register a log event
Intercom.logEvent({ name: 'my-event', data: { pi: 3.14 } });
// Display the message composer
Intercom.displayMessageComposer({ message: 'Hello there!' });
// Identity Verification
// https://developers.intercom.com/installing-intercom/docs/ios-identity-verification
Intercom.setUserHash({ hmac: 'xyz' });ionic start my-cap-app --capacitorcd my-cap-appnpm install β-save @capacitor-community/intercommkdir www && touch www/index.htmlnpx 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.
ionic start my-cap-app --capacitorcd my-cap-appnpm install β-save @capacitor-community/intercommkdir www && touch www/index.htmlnpx cap add android- add intercom keys to capacitor's configuration file
{
β¦
"plugins": {
"Intercom": {
"androidApiKey": "android_sdk-xxx",
"androidAppId": "yyy"
}
}
β¦
}
npx cap open android
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.
loadWithKeys(...)registerIdentifiedUser(...)registerUnidentifiedUser()updateUser(...)logout()logEvent(...)displayMessenger()displayMessageComposer(...)displayHelpCenter()hideMessenger()displayLauncher()hideLauncher()displayInAppMessages()hideInAppMessages()displayCarousel(...)setUserHash(...)setBottomPadding(...)sendPushTokenToIntercom(...)receivePush(...)displayArticle(...)addListener('windowDidShow', ...)addListener('windowDidHide', ...)removeAllListeners()- Interfaces
loadWithKeys(options: { appId?: string; apiKeyIOS?: string; apiKeyAndroid?: string; }) => Promise<void>| Param | Type |
|---|---|
options |
{ appId?: string; apiKeyIOS?: string; apiKeyAndroid?: string; } |
registerIdentifiedUser(options: { userId?: string; email?: string; }) => Promise<void>| Param | Type |
|---|---|
options |
{ userId?: string; email?: string; } |
registerUnidentifiedUser() => Promise<void>updateUser(options: IntercomUserUpdateOptions) => Promise<void>| Param | Type |
|---|---|
options |
IntercomUserUpdateOptions |
logout() => Promise<void>logEvent(options: { name: string; data?: any; }) => Promise<void>| Param | Type |
|---|---|
options |
{ name: string; data?: any; } |
displayMessenger() => Promise<void>displayMessageComposer(options: { message: string; }) => Promise<void>| Param | Type |
|---|---|
options |
{ message: string; } |
displayHelpCenter() => Promise<void>hideMessenger() => Promise<void>displayLauncher() => Promise<void>hideLauncher() => Promise<void>displayInAppMessages() => Promise<void>hideInAppMessages() => Promise<void>displayCarousel(options: { carouselId: string; }) => Promise<void>| Param | Type |
|---|---|
options |
{ carouselId: string; } |
setUserHash(options: { hmac: string; }) => Promise<void>| Param | Type |
|---|---|
options |
{ hmac: string; } |
setBottomPadding(options: { value: string; }) => Promise<void>| Param | Type |
|---|---|
options |
{ value: string; } |
sendPushTokenToIntercom(options: { value: string; }) => Promise<void>| Param | Type |
|---|---|
options |
{ value: string; } |
receivePush(notification: IntercomPushNotificationData) => Promise<void>| Param | Type |
|---|---|
notification |
IntercomPushNotificationData |
displayArticle(options: { articleId: string; }) => Promise<void>| Param | Type |
|---|---|
options |
{ articleId: string; } |
addListener(eventName: 'windowDidShow', listenerFunc: () => void) => Promise<PluginListenerHandle>| Param | Type |
|---|---|
eventName |
'windowDidShow' |
listenerFunc |
() => void |
Returns: Promise<PluginListenerHandle>
addListener(eventName: 'windowDidHide', listenerFunc: () => void) => Promise<PluginListenerHandle>| Param | Type |
|---|---|
eventName |
'windowDidHide' |
listenerFunc |
() => void |
Returns: Promise<PluginListenerHandle>
removeAllListeners() => Promise<void>| Prop | Type |
|---|---|
userId |
string |
email |
string |
name |
string |
phone |
string |
languageOverride |
string |
customAttributes |
{ [key: string]: any; } |
| 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 |
| Prop | Type |
|---|---|
remove |
() => Promise<void> |
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.
UserUpdateOptionsoption type becomesIntercomUserUpdateOptionsIntercomPluginconfiguration key becomesIntercomandroid-apiKeyconfig key becomesandroidApiKeyandroid-appIdconfig key becomesandroidAppIdios-apiKeyconfig key becomesiosApiKeyios-appIdconfig key becomesiosAppId- 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);
- }});
- }
}MIT
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
