react-native-zohosalesiq-mobilisten
Version:
A React Native module for the ZohoSalesIQ Mobilisten SDK
205 lines (152 loc) • 7.13 kB
Markdown
[](https://www.zoho.com/salesiq/help/developer-section/react-native-sdk-installation.html) [](https://mobilisten.io/) [](https://github.com/zoho/SalesIQ-Mobilisten-ReactNative/actions)
# React Native module for SalesIQ Mobilisten SDK
Connect with customers at every step of their journey. Give them the best in-app live chat experience with Mobilisten. Mobilisten enables customers to reach you from any screen on your app, get their questions answered, and make better purchase decisions.
## Getting Started
[**Mobilisten**](https://mobilisten.io/) is a support chat SDK that comes with a set of highly configurable APIs to suit your needs. Get started by generating an `App` and `Access` keys for your bundle ID from the SalesIQ console.
## Requirements
**iOS**: Minimum deployment target should be set to iOS 13.
**Android**:
Ensure that your project meets the following requirements:
- Minimum Android Version: Android 5.0 (Lollipop) (API Level 21)
- Compile SDK Version: 35 (Android 14)
- Required Permissions:
- android.permission.INTERNET (Required for network operations)
## Installation
Follow the below steps given below to complete installation of **Mobilisten** in your React-Native app.
1. Install the **react-native-zohosalesiq-mobilisten** package using NPM.
```ruby
npm install react-native-zohosalesiq-mobilisten --save
```
2. Link the module with the react native app
```ruby
react-native link react-native-zohosalesiq-mobilisten
```
#### Installation steps for iOS
1. Navigate to the `ios` folder in the project directory.
2. Run the `pod repo update && pod install` command from the `ios` directory.
For the RNZohoSalesIQ version below `10.0.0`:
1. Open your podfile.
2. Add the "/ios" to the path for the RNZohoSalesIQ pod, as shown below.
```diff
- pod 'RNZohoSalesIQ', :path => '../node_modules/react-native-zohosalesiq-mobilisten'
+ pod 'RNZohoSalesIQ', :path => '../node_modules/react-native-zohosalesiq-mobilisten/ios'
```
3. Run `pod install` after saving the changes made to the Podfile.
> **Note:** If you're updating from the SDK versions below `10.0.0` to above, remove the above path in your `Podfile` and run the `pod install` in the iOS folder.
#### Installation steps for Android
1. If you're using React Native v0.60 or above, the dependency will be linked automatically without
any steps being taken.
#### Android: Auto linking with React Native v0.59 and below
```
$ react-native link react-native-zohosalesiq-mobilisten
```
#### Android: Manual linking with React Native v0.59 and below
- Add the below code to the `android/settings.gradle`
```Gradle
include ':react-native-zohosalesiq-mobilisten'
project(':react-native-zohosalesiq-mobilisten').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-zohosalesiq-mobilisten/android')
```
- Implement the dependency in the `android/app/build.gradle` file inside `dependencies`
```Gradle
implementation project(':react-native-zohosalesiq-mobilisten')
```
- Add the below snippet to `android/app/src/main/java/com/module_name/MainApplication.java` if the
packages were not auto-generated.
```java
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
// ...
@Override
protected List<ReactPackage> getPackages() {
// Add new RNZohoSalesIQPackage() into the React packages list like below
return new ArrayList<>(Arrays.<ReactPackage>asList(new RNZohoSalesIQPackage()));
}
// ...
};
@Override
public ReactNativeHost getReactNativeHost(){
return mReactNativeHost;
}
```
2. Navigate to the `android` folder within the project directory using Android Studio or any other
platform of choice for Android development.
Add the following maven repository to the `build.gradle` or `settings.gradle` file.
For Gradle version 6.7 and below
```Gradle
// Add the following to your project's root build.gradle file.
allprojects {
repositories {
google()
mavenCentral()
// ...
maven { url 'https://maven.zohodl.com' }
}
}
```
For Gradle version 6.8 and above
```Gradle
// Add the following to your settings.gradle file.
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
// Add the Zoho Maven URL here
maven { url 'https://maven.zohodl.com' }
}
}
```
3. #### Proguard rules:
If you have enabled ProGuard(minifyEnabled) R8, then please add the following rules in your `proguard-rules.pro` file in your `android` folder.
```
-dontwarn kotlinx.parcelize.Parcelize
```
4. Click `Sync Now` from the toolbar on the IDE.
## New Architecture support: (RN >= 0.73)
To take advantage of the new architecture
1. **iOS**
- Open the `ios/Podfile` file
Add `ENV['RCT_NEW_ARCH_ENABLED'] = '1'` in the main scope of your `Podfile`
```diff
# Resolve react_native_pods.rb with node to allow for hoisting
+ ENV['RCT_NEW_ARCH_ENABLED'] = '1'
require Pod::Executable.execute_command('node', ['-p',
'require.resolve(
"react-native/scripts/react_native_pods.rb",
{paths: [process.argv[1]]},
)', __dir__]).strip
```
- Navigate to the `ios` folder under the project directory and run `pod install`.
2. **Android**
- Open the `android/gradle.properties` file.
Toggle the `newArchEnabled` flag from `false` to `true`.
```diff
# Use this property to enable support to the new architecture.
# This will allow you to use TurboModules and the Fabric render in
# your application. You should enable this flag either if you want
# to write custom TurboModules/Fabric components OR use libraries that
# are providing them.
+ newArchEnabled=true
- newArchEnabled=false
```
> **Note:** While switching between old architecture and new architecture remove the node_modules folder and then run your project.
## Initializing Mobilisten
1. Generate `App` and `Access` keys for iOS and Android platforms by providing your bundle id.
2. Use the `ZohoSalesIQ.initWithCallback` API with keys for each platform as shown below.
```js
import { ZohoSalesIQ } from 'react-native-zohosalesiq-mobilisten';
let appKey;
let accessKey;
if (Platform.OS === 'ios') {
appKey = "ios_app_key";
accessKey = "ios_access_key";
} else {
appKey = "android_app_key";
accessKey = "android_access_key";
}
ZohoSalesIQ.initWithCallback((appKey, accessKey, success) => {
// Your code
});
```
5. If you want to show the default chat launcher, use the [**ZohoSalesIQ.Launcher.show()**](https://www.zoho.com/salesiq/help/developer-section/react-native-sdk-launcher-show.html) API (Optional).
## API Documentation
You can find the list of all APIs and their documentation [here](https://www.zoho.com/salesiq/help/developer-section/react-native-sdk-add-event-listener.html) under the **API Reference** section.