ChannelIO
This page describes ChannelIO
of the Channel Talk React Native SDK (hereafter refer to SDK).)
boot
Loads the information needed to use the SDK. After a successful boot, you are ready to use the features of SDK. See boot for details.
Parameter | required | Description |
---|---|---|
bootConfig | O | A boot configuration. You can set the plugin key and position of Channel button, etc. |
bootCallback | X | A callback from boot . It returns bootStatus and User. |
const config = {
"pluginKey": YOUR_PLUGIN_KEY,
"memberId": MEMBER_ID,
"memberHash": MEMBER_HASH,
"profile": {
"name": NAME,
"email": EMAIL,
"mobileNumber": "+~~~",
"avatarUrl": AVATAR_URL,
OTHER_KEY: OTHER_VALUE,
},
"language": LANGUAGE, // "en", "ko", "jp"
"unsubscribeEmail": BOOLEAN,
"unsubscribeTexting": BOOLEAN,
"trackDefaultEvent": BOOLEAN,
"hidePopup": BOOLEAN,
"channelButtonOption": {
"xMargin": 16,
"yMargin": 16,
"position": POSITION, // "left", "right"
},
"appearance": APPEARANCE // "system", "light", "dark"
}
ChannelIO.boot(config).then((result) => {
// result.status
// result.user
})
sleep
Disable all functions except receiving system push notifications and track. See About life cycle for more details.
ChannelIO.sleep();
shutdown
Terminate connection between SDK and Channel. shutdown
will discontinue features of the SDK will be discontinued. See About life cycle for more information.
ChannelIO.shutdown();
ChannelIO.shutdown()
[ChannelIO shutdown];
ChannelIO.shutdown();
showChannelButton
Displays Channel button on the global screen.
ChannelIO.showChannelButton();
hideChannelButton
Hide Channel button on the global screen.
ChannelIO.hideChannelButton();
showMessenger
Shows the messenger.
ChannelIO.showMessenger();
hideMessenger
Hides the messenger.
ChannelIO.hideMessenger();
openChat
Opens a Chat. You can open a new one or open an existing chat.
Parameter | required | description |
---|---|---|
chatId | X | The id of chat. If chatId is invalid or nil, it will open a newly created chat. |
message | X | A filled message on the message input box. It will be valid when chatId is nil. |
// Open chat id is '123'
ChannelIO.openChat("123", null);
// Same as ChannelIO.openChat("123", null);
// When chat id parameter is not null, message parameter is ignored.
ChannelIO.openChat("123", "asd");
// Open new chat like click start new chat in home
ChannelIO.openChat(null, null);
// Open new chat with "123" in input box.
// If support bot is enabled, open support bot instead.
ChannelIO.openChat(null, "123");
openWorkflow
Opens a user chat and starts the specified workflow.
- If a corresponded workflow with the provided
workflowId
is exists, it will be executed. ifworkflowId
is invalid, an error page is displayed. - If you don't pass
workflowId
, no action is taken.
parameter | type | required | description |
---|---|---|---|
workflowId | String? | X | The ID of workflow to start with. An error page will be shown if such workflow does not exist. |
// Open workflow id "123".
ChannelIO.openWorkflow('123');
track
Track the user’s event. See event tracking for more details.
Paramter | Description |
---|---|
eventName | Event name max length is 64 |
properties | optional Event properties. |
// Only send event name
ChannelIO.track(EVENT_NAME);
// Send event with properties
ChannelIO.track(
EVENT_NAME,
{
PROPERTY_KEY_1: STRING_VALUE,
PROPERTY_KEY_2: INT_VALUE
}
);
updateUser
Updates user information.
Parameter | required | description |
---|---|---|
userData | O | Information of the user to be updated. |
callback | X | Callback for the updated user information. |
const user = {
"language": LANGUAGE, // "ko", "jp", "en"
"tags": ["1", "2", "3"],
"profile": {
"name": NAME,
"email": EMAIL,
"mobileNumber": '+~~~',
"avatarUrl": AVATAR_URL,
OTHER_KEY: OTHER_VALUE,
},
"profileOnce": {
},
"unsubscribed": BOOLEAN,
};
ChannelIO.updateUser(user).then((result) => {
// result.error
// result.user
});
addTags
Add tags to the user.
Previous user's tag | Parameter | Result |
---|---|---|
["a"] | ["b"] | ["a", "b"] |
null | ["a", "b"] | ["a", "b"] |
["a", "c"] | ["a", "b"] | ["a", "b", "c"] |
["a", "b", "c", "d", "e", "f", "g"] | ["g", "h", "i", "j"] | ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"] |
["a", "b", "c", "d", "e", "f", "g"] | ["g", "h", "i", "j", "k"] | error: combined size is 11 |
Parameter | required | description |
---|---|---|
tags | O | Tags to add. • The maximum length is 10. • Tag cannot be duplicated. • Tag is case-insensitive (Tags are renamed to the lower-case.) • nil, list including nil, empty list, and an empty string is not allowed. |
callback | X | A Callback when the update completes. It returns an error when it fails to add. |
let tags = ["1", "2", "3"];
ChannelIO.addTags(tags).then((result) => {
// result.error
// result.user
});
removeTags
Remove tags from the user. It Ignores if tags do not exist.
Previous user's tag | Parameter | Result |
---|---|---|
["a", "b"] | ["a"] | ["b"] |
["a"] | ["c"] | ["a"] |
["a"] | ["A", "c"] | null |
Parameter | required | description |
---|---|---|
tags | O | Tags to be deleted. nil or empty strings or lists containing them are not allowed. |
callback | X | A Callback when the remote tag completes. It returns an error when it fails to remove. |
let tags = ["1", "2"];
ChannelIO.removeTags(tags).then((result) => {
// result.error
// result.user
});
setPage
Sets the name of the screen along with user chat profile. If track
is called before setPage
, the event will not reflect the page information.
Parameter | type | required | description |
---|---|---|---|
page | String? | X | This is the screen name when track is called. When calling .track(null) , the event's page is set to null . |
profile | object | X | The user chat profile value. - When nil is assigned to a specific field within the profile object, only the value of that field is cleared. - The user chat profile value is applied when a user chat is created. |
ChannelIO.setPage(page)
ChannelIO.setPage(
page,
{
"profile1": "profile1",
"profile2": "profile2",
"profile3": "profile3"
}
)
resetPage
Resets the name of the screen when track
is called. The default value is the name of the ViewController or Activity calling the track.
ChannelIO.resetPage()
hidePopup
Hides the Channel Popup on the global screen.
ChannelIO.hidePopup();
initPushToken
Notifies the change of the device token to Channel Talk.
Parameter | Description |
---|---|
token | Push token |
import messaging from '@react-native-firebase/messaging';
import {ChannelIO} from 'react-native-channel-plugin';
componentDidMount() {
this.onRefreshListener = messaging().onTokenRefresh(fcmToken => {
ChannelIO.initPushToken(fcmToken);
});
}
componentWillUnmount() {
this.onRefreshListener();
}
isChannelPushNotification
Checks if the push payload is targeting on Channel Talk SDK.
Parameter | Description |
---|---|
payload |
import messaging from '@react-native-firebase/messaging';
import {ChannelIO} from 'react-native-channel-plugin';
componentDidMount() {
this.backgroundMessageHandler = messaging().setBackgroundMessageHandler(
async (remoteMessage) => {
// this line -
ChannelIO.isChannelPushNotification(remoteMessage.data).then((result) => {
if (result) {
ChannelIO.receivePushNotification(remoteMessage.data).then((_) => { });
} else {
// TODO : Your FCM code
}
},
);
},
);
}
componentWillUnmount() {
this.backgroundMessageHandler();
}
receivePushNotification
Notifies an event that the user has received the push notification.
+ Android
Show push notification
Parameter | Description | Etc. |
---|---|---|
payload |
import messaging from '@react-native-firebase/messaging';
import {ChannelIO} from 'react-native-channel-plugin';
componentDidMount() {
this.backgroundMessageHandler = messaging().setBackgroundMessageHandler(
async (remoteMessage) => {
ChannelIO.isChannelPushNotification(remoteMessage.data).then((result) => {
if (result) {
ChannelIO.receivePushNotification(remoteMessage.data).then((_) => { });
} else {
// TODO : Your FCM code
}
},
);
},
);
}
componentWillUnmount() {
this.backgroundMessageHandler();
}
hasStoredPushNotification
Checks if the plugin has unhandled push notification. See push notifications for details.
Parameter | Description | Etc. |
---|---|---|
activity | Base activity to start chat | Android only |
if (ChannelIO.hasStoredPushNotification()) {
ChannelIO.openStoredPushNotification();
}
openStoredPushNotification
Open chat according to the push data stored by receivePushNotifcation .
Parameter | Description | Etc. |
---|---|---|
activity | Base activity to start chat | Android only |
if (ChannelIO.hasStoredPushNotification()) {
ChannelIO.openStoredPushNotification();
}
isBooted
Checks that the SDK is in the boot
status.
setDebugMode
Sets SDK’s debug mode. If it sets true, SDK prints log messages in the console.
Parameter | Description |
---|---|
flag | Debug flag |
ChannelIO.setDebugMode(true);
setAppearance
Sets the appearance of the SDK.
Parameter | Type | Required | Description |
---|---|---|---|
appearance | Appearance | O | If you specify "light" and "dark", fix the theme with its properties. If "system", follow the device's system theme. default value is "system". |
Updated 12 days ago