Supsis Flutter Widget, Flutter uygulamalarınıza kolayca entegre edebileceğiniz özelleştirilebilir bir sohbet bileşenidir. Bu bileşen, kullanıcılarınızın destek ekibinizle gerçek zamanlı olarak iletişim kurmasını sağlar.
- Kolay Entegrasyon: Uygulamanıza minimum çabayla sohbet bileşeni ekleyin.
- Özelleştirilebilir: Kullanıcı verilerini ve departmanı ayarlayarak kişiselleştirilmiş destek sunun.
- Duyarlı Arayüz: Bileşen, farklı ekran boyutlarına ve yönlendirmelerine sorunsuz bir şekilde uyum sağlar.
- Gerçek Zamanlı İletişim: Kullanıcılarınız ve destek ekibiniz arasında anlık mesajlaşma imkanı sağlar.
-
Flutter SDK 2.0 veya üzeri
-
İnternet İzni: Uygulamanızın internet erişimine izin vermesi gerekir.
AndroidManifest.xml
dosyanıza aşağıdaki izni ekleyin:<uses-permission android:name="android.permission.INTERNET" />
Bu kütüphane pub.dev üzerinden dağıtılmaktadır. Projenize eklemek için aşağıdaki adımları izleyin:
dependencies:
flutter:
sdk: flutter
supsis_flutter_widget: ^0.0.5
- Paketleri indirmek için terminalde şu komutu çalıştırın:
flutter pub get
SupsisVisitor widget'ını kullanmak için, dart dosyanıza dahil edin ve widget ağacınıza ekleyin.
main.dart
Dosyası:
import 'package:flutter/material.dart';
import 'package:supsis_flutter_widget/supsis_flutter_widget.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final SupsisVisitorController _controller = SupsisVisitorController();
@override
void initState() {
super.initState();
// Otomatik olarak kullanıcı verilerini ayarla
WidgetsBinding.instance.addPostFrameCallback((_) {
_controller.setUserData({
'name': 'Ahmet Yılmaz',
'email': 'ahmet.yilmaz@example.com',
});
_controller.setContactProperty({
'phone': '05551234567',
'address': '123 Ana Cadde',
});
});
}
// clearCache fonksiyonunu tanımla ancak kullanma
void clearCache() {
_controller.clearCache();
print('Cache cleared.');
}
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false, // Debug modunu kapat
home: Scaffold(
appBar: AppBar(
title: Text("Supsis Visitor"),
),
body: SupsisVisitor(
controller: _controller,
// Kendi domain adınızı girin
domainName: 'sizin_domain_adiniz',
environment: 'prod', // veya 'beta'
onConnected: () {
print('Visitor connected');
},
onDisconnected: () {
print('Visitor disconnected');
},
),
// WebView görünürse FloatingActionButton'u gösterme
floatingActionButton: !_controller.isVisible
? Padding(
padding: const EdgeInsets.only(bottom: 64.0, right: 16),
child: FloatingActionButton(
onPressed: () {
_controller.open();
print('WebView opened.');
},
child: Icon(Icons.chat),
),
)
: null,
),
);
}
}
Fonksiyon | Açıklama | Kullanım Örneği |
---|---|---|
setUserData(Map<String, dynamic> userData) |
Sohbet oturumu için kullanıcı bilgilerini ayarlar. | _controller.setUserData({'email': 'kullanici@ornek.com', 'name': 'Ahmet Yılmaz'}); |
setContactProperty(Map<String, dynamic> contactProperty) |
Kullanıcının iletişim bilgilerini ayarlar. | _controller.setContactProperty({'phone': '05551234567', 'address': '123 Ana Cadde'}); |
setDepartment(String department) |
Sohbet oturumu için departmanı ayarlar. | _controller.setDepartment('Destek'); |
open() |
Sohbet bileşenini açar ve kullanıcıya gösterir. | _controller.open(); |
close() |
Sohbet bileşenini kapatır ve kullanıcıdan gizler. | _controller.close(); |
clearCache() |
Sohbet oturumunun önbelleğini temizler. | _controller.clearCache(); |
main.dart
Dosyası:
import 'package:flutter/material.dart';
import 'package:supsis_flutter_widget/supsis_flutter_widget.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
final SupsisVisitorController _controller = SupsisVisitorController();
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Supsis Flutter Widget Örnek',
debugShowCheckedModeBanner: false, // Debug modunu kapat
home: Scaffold(
appBar: AppBar(
title: Text('Supsis Flutter Widget Örnek'),
),
body: Stack(
children: [
SupsisVisitor(
controller: _controller,
// Kendi domain adınızı girin
domainName: 'sizin_domain_adiniz',
environment: 'prod', // veya 'beta'
onConnected: () {
print('Visitor connected');
},
onDisconnected: () {
print('Visitor disconnected');
},
),
Positioned(
bottom: 20,
left: 20,
child: Column(
children: [
ElevatedButton(
onPressed: () {
_controller.open();
print('Sohbet açıldı.');
},
child: Text('Sohbeti Aç'),
),
SizedBox(height: 10),
ElevatedButton(
onPressed: () {
_controller.close();
print('Sohbet kapatıldı.');
},
child: Text('Sohbeti Kapat'),
),
],
),
),
],
),
),
);
}
}
Bu proje MIT Lisansı altında lisanslanmıştır.
Herhangi bir sorunla karşılaşırsanız veya sorunuz varsa, lütfen GitHub deposu üzerinden bir sorun (issue) açın.