@capacitor-community/intercom
Capacitor community plugin for enabling Intercom capabilities
Maintainer | GitHub | Social |
---|---|---|
Stewan Silva | stewwan | @StewanSilva |
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.
Using npm:
npm install @capacitor-community/intercom
npm install https://github.com/Fiksuruoka-fi/capacitor-intercom --save
Using yarn:
yarn add @capacitor-community/intercom
yarn add https://github.com/Fiksuruoka-fi/capacitor-intercom
Sync native files:
npx cap sync
- registerIdentifiedUser
- registerUnidentifiedUser
- updateUser
- logout
- logEvent
- displayMessenger
- displayMessageComposer
- displayHelpCenter
- hideMessenger
- displayLauncher
- hideLauncher
- displayInAppMessages
- hideInAppMessages
- setUserHash
- setBottomPadding
- sendPushTokenToIntercom
- handlePush
- sendPushTokenToIntercom
- receivePush
- displayCarousel
import { 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, 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" } })
/**
* Launch mobile carousels
* https://www.intercom.com/help/en/articles/4605339-launch-mobile-carousels-from-a-button-in-your-mobile-app
*/
Intercom
.displayCarousel({ id: "123456" } })
//////////////////////////////////////////////
// To receive push notifications in Android you'll have to send push token to Intercom
// and start listening received notifications in PushNotifications plugin:
//////////////////////////////////////////////
/**
* Register Push notification listener for "registration" action
* to send push token to Intercom in Android devices
*
* Only for Android
*/
PushNotifications.addListener('registration', async ({ value }) => {
// Send token to Intercom if platform is Android
if (Capacitor.getPlatform() === 'android') {
Intercom.sendPushTokenToIntercom({ value })
}
})
/**
* Register Push notification listener for "pushNotificationReceived" handler
* to check if push is from Intercom and handle it their way
*
* Only for Android
*/
PushNotifications.addListener('pushNotificationReceived', (notification) => {
// Handle push received in Intercom if platform is Android and push notification is coming from Intercom
if (Capacitor.getPlatform() === 'android') {
Intercom.receivePush(notification.data)
}
})
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": {
"ios-apiKey": "ios_sdk-xxx",
"ios-appId": "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 --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": {
"android-apiKey": "android_sdk-xxx",
"android-appId": "yyy",
"android-senderId": "123"
}
}
โฆ
}
npx cap open android
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.
MIT
Thanks goes to these wonderful people (emoji key):
Stew ๐ป ๐ |
David Seek ๐ป |
Roman Nikitin ๐ป |
Anne Tomassoni ๐ป ๐ |
Maciej Modzelewski ๐ป |
Oleg Yuzvik ๐ง |
This project follows the all-contributors specification. Contributions of any kind welcome!