Customization
Android
Kommunicate provides easy settings to customize message text color, background colors and enable of disable any particular feature.
Follow the below steps:
- Download the setting file from here(Right click and Save as).
- Place the downloaded applozic-settings.json file under your /android/app/src/main/assets directory
Hiding/Showing media attachment and location sharing options:
You can hide or show the media attachments options like camera,files and location sharing by changing the below values in applozic-settings.json file. Make an option false if you want to hide it.
"attachmentOptions": {
":location": true,
":camera": true,
":file": true
}
If location sharing functionality is enabled:
If you are NOT enabling location sharing functionality, you may go to the next step: Other properties
If you are enabling the location option in the applozic-settings.json
file, make sure to include the below permissions and geo-API key in your AndroidManifest.xml
file
Add the following permissions in your AndroidManifest.xml
file in platforms/android/AndroidManifest.xml:
Add this inside </application>
tag
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="<your-geo-API-KEY>" />
Other properties
Here are the properties in applozic-seetings.json
file that are specific to Kommunicate.
"hideGroupSubtitle" : true, //True will hide the subtitle in the support group(for e.g 'Keith, bot and You' will be hidden)
"enableAwayMessage": false, //Away message will be disabled
"logoutOption": false, //The logout option in the Option menu will be hidden
"showStartNewConversation" : false, //The default Start New Conversation button will be hidden
Theme Customization
Not all the colors can be changed from the applozic-settings.json file. There are some colors like the statusbar/toolbar color, message status icon colors(sent, delivered etc icons) which you need to override in your colors file under android/res/values/colors.xml file. Create the file under the same directory if not created.
Follow the below steps to override the default colors in Kommunicate:
- Add the below line in your
<resources
tag in the colors.xml file
xmlns:tools="http://schemas.android.com/tools"
- Add the below colors in your colors.xml file and use your own color values in them
<color name="message_status_icon_colors" tools:override="true">#FF4081</color> // Message status icon color
<color name="applozic_theme_color" tools:override="true">#FFB3E5FC</color> //Theme color
<color name="applozic_theme_color_primary" tools:override="true">#FF4081</color>
<color name="applozic_theme_color_primary_dark" tools:override="true">#FF4081</color>
<color name="applozic_theme_color_accent" tools:override="true">#3F51B5</color>
<color name="default_start_new_button_color" tools:override="true">#FF4081</color> //Default start new conversation button color
Sample colors.xml file:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<Your other app specific colors go here>
<color name="message_status_icon_colors" tools:override="true">#FF4081</color>
<color name="applozic_theme_color" tools:override="true">#FFB3E5FC</color>
<color name="applozic_theme_color_primary" tools:override="true">#FF4081</color>
<color name="applozic_theme_color_primary_dark" tools:override="true">#FF4081</color>
<color name="applozic_theme_color_accent" tools:override="true">#3F51B5</color>
<color name="default_start_new_button_color" tools:override="true">#FF4081</color>
</resources>
iOS
Note: When using react-native-kommunicate-chat in your app, you need to open the ios/YourApp.xcworkpsace file in Xcode to do the customizations as Kommunicate plugin uses CocoaPods. Refer this sample for the project structure and the location where you need to add the KommunicateWrapper.swift file. The sample contains two build files, KmSample.xcodeproj and KmSample.xcworkspace file. We will be using the later one to do customizations.
To customize kommunicate settings for iOS, follow the below steps:
Open the ios/YourApp.xcworkspace in Xcode.
Download the KommunicateWrapper.swift(Right click and Save as) file.
Right click on your App target name(
) in Xcode -> Add files to "YourApp" -> Select the KommunicateWrapper.swift file downloaded in step 2. Ignore if this file is already added. If your app does not have the Bridging header file, Xcode will show a dialog to add the file, click Yes. Click on YourApp in Xcode and select Build Settings -> Build Options -> Always Embeded Swift Standard Libraries -> Yes
Open AppDelegate.m file and add the below import (Ignore if already done):
#import "<YourApp>-Swift.h"
For e.g. if your target name is KmSample then the import statement should be as below:
#import "KmSample-Swift.h"
- Then in your didFinishLaunchingWithOptions method add the below line just above the return statement(Refer here for details):
[KommunicateWrapper.shared application:application didFinishLaunchingWithOptions:launchOptions];
- Search for function
useCustomConfigurations()
inKommunicateWrapper.swift
file and add the configurations you want to customize inside the function. Refer this doc for different configurations provided by Kommunicate iOS SDK.
Custom data to bot platform
Kommunicate allows you to send custom data to your Dialogflow bot. Create a chatContext object (having all the data you wish to pass to bot platform) and update it to Kommunicate settings by calling RNKommunicateChat.updateChatContext
.
The chat context object will be sent along with every message user sends from the device.
var chatContext = {
email: "<EMAIL>",
deviceInfo: {
manufacturer: 'Samsung',
OSVersion: '9.0'
}
}
RNKommunicateChat.updateChatContext(chatContext, (status, message) => {
console.log("Update chat context status : " + status + " , Message :" + message);
});
//Note: Replace <EMAIL> with an actual emailId