@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/intercom
Using yarn:
yarn add @capacitor-community/intercom
Sync native files:
npx cap sync
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 });
Intercom.registerIdentifiedUser({ email: 'test@example.com' });
Intercom.registerIdentifiedUser({ userId: 123456, email: 'test@example.com' });
// 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 --capacitor
cd my-cap-app
npm install —-save @capacitor-community/intercom
mkdir www && touch www/index.html
npx cap add ios
{
…
"plugins": {
"Intercom": {
"iosApiKey": "ios_sdk-xxx",
"iosAppId": "yyy"
}
}
…
}
npx cap open ios
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
{
…
"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.
{ appId?: string; apiKeyIOS?: string; apiKeyAndroid?: string; }
|
--------------------
### registerIdentifiedUser(...)
```typescript
registerIdentifiedUser(options: { userId?: string; email?: string; }) => Promise{ userId?: string; email?: string; }
|
--------------------
### registerUnidentifiedUser()
```typescript
registerUnidentifiedUser() => PromiseIntercomUserUpdateOptions
|
--------------------
### logout()
```typescript
logout() => Promise{ name: string; data?: any; }
|
--------------------
### displayMessenger()
```typescript
displayMessenger() => Promise{ message: string; }
|
--------------------
### displayHelpCenter()
```typescript
displayHelpCenter() => Promise{ carouselId: string; }
|
--------------------
### setUserHash(...)
```typescript
setUserHash(options: { hmac: string; }) => Promise{ hmac: string; }
|
--------------------
### setBottomPadding(...)
```typescript
setBottomPadding(options: { value: string; }) => Promise{ value: string; }
|
--------------------
### sendPushTokenToIntercom(...)
```typescript
sendPushTokenToIntercom(options: { value: string; }) => Promise{ value: string; }
|
--------------------
### receivePush(...)
```typescript
receivePush(notification: IntercomPushNotificationData) => PromiseIntercomPushNotificationData
|
--------------------
### displayArticle(...)
```typescript
displayArticle(options: { articleId: string; }) => Promise{ articleId: string; }
|
--------------------
### addListener('windowDidShow', ...)
```typescript
addListener(eventName: 'windowDidShow', listenerFunc: () => void) => Promise'windowDidShow'
|
| **`listenerFunc`** | () => void
|
**Returns:** Promise<PluginListenerHandle>
--------------------
### addListener('windowDidHide', ...)
```typescript
addListener(eventName: 'windowDidHide', listenerFunc: () => void) => Promise'windowDidHide'
|
| **`listenerFunc`** | () => void
|
**Returns:** Promise<PluginListenerHandle>
--------------------
### removeAllListeners()
```typescript
removeAllListeners() => Promisestring
|
| **`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>
|
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.
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
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!