laraigo_chat 1.0.4+21 laraigo_chat: ^1.0.4+21 copied to clipboard
An easy flutter implementation of Laraigo's real time chat services with custom designed bots.
Laraigo Chat #
Flutter dependency that implements Laraigo's services.
Features #
- Real time comunication
- Online chat customization
- Multimedia files picker
- Share location
- Multiple kinds of interactions (Text, Buttons, and Carousels)
Getting started #
You should ensure that you add the router as a dependency in your flutter project.
dependencies:
laraigo_chat: ^1.0.2+15
Like the project uses Geolocator for sharing location is necessary to add the corresponding permissions for it. Following the Geolocator guide
Also is necessary to add the MultiDex to your Android folder
multiDexEnabled true
Set the minSdk to 20
minsdk 20
And if you want to use the Google Maps functionality to show your maps when a location is shared, you need to specify your API key in the application manifest android/app/src/main/AndroidManifest.xml
<manifest ...
<application ...
<meta-data android:name="com.google.android.geo.API_KEY"
android:value="YOUR KEY HERE"/>
If you find a specific issue on integration related to Google Maps please review the Google Maps Flutter documentation for further assistance
You should then run flutter packages upgrade
or update your packages in IntelliJ.
Example Project #
There is an example project in the example
folder. Check it out. Otherwise, keep reading to get up and running.
Usage #
Need to include the import of the package to the dart file where it will be used, use the below command,
import 'package:laraigo_chat/socket_action_button.dart';
Custom Container
SocketContainer(
child: widget,
integrationId: "Your Integration Id",
customMessage: "Hola"),
Floating Action Button
floatingActionButton: SocketActionButton(
integrationId: 'Your Integration Id',
)
Elevated Button
SocketElevatedButton(
width: 80,
height: 80,
integrationId: "Your Integration Id",
child: Container(
width: 80,
height: 80,
padding: const EdgeInsets.all(10),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: const [Icon(Icons.chat), Text("Soporte")]),
),
Floating Action Button
SocketTextButton(
customMessage: "Hola",
integrationId: "Your Integration Id",
child: const Text("Iniciar conversación"),
)
Complete example
import 'package:laraigo_chat/core/widget/socket_action_button.dart';
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
_counter++;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
const Text(
'You have pushed the button this many times:',
),
Text(
'$_counter',
style: Theme.of(context).textTheme.headline4,
),
],
),
),
floatingActionButton: SocketActionButton(
integrationId: 'Your Integration Id',
));
}
}
Creditos: Lino Mac Kay y Jean Aguirre