flutter_freshchat

Last updated:

0 purchases

flutter_freshchat Image
flutter_freshchat Images
Add to Cart

Description:

flutter freshchat

💬 Flutter Freshchat

A Flutter plugin for integrating Freshchat in your mobile app.

Setup #
Android #
Add this to your AndroidManifest.xml
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.example.demoapp.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/freshchat_file_provider_paths" />
</provider>
copied to clipboard
If you have migrated to AndroidX your might need change the provider attribute android:name to this:
<provider android:name="androidx.core.content.FileProvider">
</provider>
copied to clipboard
Add this to your Strings.xml located inside android/src/res/values
<string name="freshchat_file_provider_authority">com.example.demoapp.provider</string>
copied to clipboard
Firebase Cloud Messaging support

Add dependency in <app-name>/android/app/build.gradle

dependencies {
// ...
implementation "com.github.freshdesk:freshchat-android:3.3.0"
}
copied to clipboard

Create FreshchatMessagingService.java (Java, not Kotlin) class to your app in the same directory as your MainActivity class

package <your package's identifier>;

import com.freshchat.consumer.sdk.Freshchat;
import com.google.firebase.messaging.RemoteMessage;
import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService;


public class FreshchatMessagingService extends FlutterFirebaseMessagingService {

@Override
public void onNewToken(String token) {
super.onNewToken(token);
}

@Override
public void onMessageReceived(final RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
if (Freshchat.isFreshchatNotification(remoteMessage)) {
Freshchat.handleFcmMessage(this, remoteMessage);
}
}
}
copied to clipboard

In AndroidManifest.xml add

<service android:name=".FreshchatMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
copied to clipboard

In your Application class change

FlutterFirebaseMessagingService.setPluginRegistrant(this)
copied to clipboard
to
FreshchatMessagingService.setPluginRegistrant(this)
copied to clipboard
IOS #

Add this to info.plist

Starting with iOS 10, Apple requires developers to declare access to privacy-sensitive controls ahead of time.



<key>NSPhotoLibraryUsageDescription</key>
<string>To Enable access to Photo Library</string>
<key>NSCameraUsageDescription</key>
<string>To take Images from Camera</string>
copied to clipboard


If you encounter non-modular header error during project build
error: include of non-modular header inside framework module 'flutter_freshchat.FlutterFreshchatPlugin'
copied to clipboard


Manually in xcode update the FreshchatSDK.h to be in the flutter_freshchat target and public.



You may have to do this each time your switch or rebuild the xcode project from flutter.



Usage #
To use this plugin, add flutter_freshchat as a dependency in your pubspec.yaml file.
import 'package:flutter_freshchat/flutter_freshchat.dart';
copied to clipboard
Initialize the Freshchat app with appID, appKey & domain which you could get from here: Where to find App ID and App Key
It has following [FreshchatConfig] properties:


domain Each Freshchat cluster falls in to one of this domains:

US - https://msdk.freshchat.com (default)
AU - https://msdk.au.freshchat.com
EU - https://msdk.eu.freshchat.com
IN - https://msdk.in.freshchat.com
US2 - https://msdk.us2.freshchat.com



cameraEnabled property is used to either enable or disable camera
within freshchat conversation widget. It default value is set to true.


gallerySelectionEnabled property is used to either enable or disable gallery
within freshchat conversation widget. It default value is set to true.


teamMemberInfoVisible property is used to show team member info
within freshchat conversation widget. It default value is set to true.


responseExpectationEnabled property is used to show exceptions that occur
within freshchat conversation widget. It default value is set to true.


showNotificationBanner property is used enabled or disable in-app notification
banner. It default value is set to true. (NOTE: IOS only).


notificationSoundEnabled property is used enabled or disable in-app notification
sound. It default value is set to true. (NOTE: IOS only).


await FlutterFreshchat.init(
appID: 'YOUR_APP_ID_HERE',
appKey: 'YOUR_APP_KEY_HERE',
domain: 'https://msdk.freshchat.com'
);
copied to clipboard
Update the user info by setting by creating a FreshchatUser object
FreshchatUser user = FreshchatUser.initial();
user.email = "[email protected]";
user.firstName = "john";
user.lastName = "doe";
user.phoneCountryCode = "+91";
user.phone = "0123456789";

await FlutterFreshchat.updateUserInfo(user: user);

// Custom properties can be set by creating a Map<String, String>
Map<String, String> customProperties = Map<String, String>();
customProperties["loggedIn"] = "true";

await FlutterFreshchat.updateUserInfo(user: user, customProperties: customProperties);
copied to clipboard
Identify the user user by usin email address or any way you uniquely identify the user.
externalID is required and returns a restoreID you can save it and use to restore the chats
await FlutterFreshchat.identifyUser(externalID: 'USER_UNIQUE_ID', restoreID: 'USER_RESTORE_ID');
copied to clipboard
Show conversation opens a conversation screen and also list all the other conversation if a list obejct is supplied to it. You can also pass a title for the chat screen.
await FlutterFreshchat.showConversations(tags: const [], title: 'CHAT_SCREEN_TITLE');
copied to clipboard
Send message directly within the app without opening the Freshchat interface. tag is optional.
await FlutterFreshchat.send(message: 'YOUR_MESSAGE_HERE', tag: 'YOUR_TAG_HERE');
copied to clipboard
ShowFAQs opens a FAQ screen in a grid like format as default you can change the default setting by changing this paramters.
showFaqCategoriesAsGrid = true
showContactUsOnAppBar = true
showContactUsOnFaqScreens = false
showContactUsOnFaqNotHelpful = false
await FlutterFreshchat.showFAQs();
copied to clipboard
Gets the unseen message count from freshchat you can use this to show a counter.
int count = await FlutterFreshchat.getUnreadMsgCount();
copied to clipboard
Reset user data at logout or when deemed appropriate based on user action in the app.
await FlutterFreshchat.resetUser();
copied to clipboard
Example #
Find the example wiring in the Flutter_Freshchat example application.
API details #
See the flutter_freshchat.dart for more API details
Issues and feedback #
Please file issues
to send feedback or report a bug. Thank you!

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.