⚙️ Desk360 Flutter SDK
Desk360 Flutter SDK desteği sayesinde, Flutter tabanlı iOS ve Android mobil uygulamalarınızın içinde bir müşteri destek masası oluşturabilirsiniz.

Özellikler

  • Müşterilerinizden gelen tüm mesajları destek talebine dönüştürün ve gelişmiş fonksiyonlara sahip Desk360 platformunu kullanarak mesajlara hızlıca geri dönüş yapın.
  • Özelleştirilebilir ve esnek UI seçenekleri ile ekranları dilediğiniz gibi yönetin.
  • Push bildirimleri ve deep link ile destek verin.
  • Çoklu dil desteği: 40'tan fazla dili destekler.
  • Farklı formatlarda medya ve dosya alın, gönderin.
  • Entegrasyon ve kullanım kolaylığı: Kurulum yalnızca birkaç satır kod yazarak gerçekleştirilebilir.
En güncel Flutter SDK sürümü 0.1.0'dır.

Örnek

Desk360 Flutter SDK fonksiyonunun nasıl çalıştığını örnek uygulama ile görebilirsiniz. Hemen example açın ve flutter şemasını çalıştırın.

Kurulum

Aşağıdaki kodu dependencies dosyası altında bulunan pubspec.yaml kısmına ekleyin.
1
desk360flutter:
2
git:
3
url: https://github.com/Teknasyon-Teknoloji/desk360-flutter-sdk.git
4
ref: 0.1.0
Copied!
Ve $ flutter pub get çalıştırın.

Kurulum Notları

iOS için:

  • iOS versiyonunu 10.0 veya daha yüksek olacak şekilde ios/Podfile içerisine gösterildiği gibi kurun: platform :ios, '10.0'
  • Eğer yoksa, ios/Podfile içerisine use_frameworks! ekleyin.
  • $ cd ios && pod install çalıştırın.

Android için:

  • kotlin_version'unu "1.4.32" veya daha yüksek olacak şekilde android/build.gradle içerisine kurun.
  • minSdkVersion'unu 21 veya daha yüksek olacak şekilde android/app/build.gradle içerisine kurun.
  • android/build.gradle içerisine maven { url 'https://raw.githubusercontent.com/Teknasyon-Teknoloji/desk360-android-sdk/master/' } ekleyin. (Bunu allprojects altındaki repositories'e ekleyin.)

Kullanım

Flutter SDK versiyonunu kullanmaya başlamadan önce, platform özelinde tek seferlik bir kurulum yapılması gerekmektedir.

iOS için:

iOS dosyasına gidin ve Runner.xcworkspace açın. Ardından, aşağıdaki kodu info.plist dosyasının içerisine ekleyin.
1
<key>NSPhotoLibraryUsageDescription</key>
2
<string>YOUR_PERMSIION_DESCRIPTION.</string>
Copied!
Şayet bu izni eklemezseniz, Desk360 iOS İmaj eklentileri düzgün çalışmaz ve uygulama crash olur.

Opsiyonel iOS Bildirim Sistemi Kullanımı:

Aynı token üzerinden push bildirimleri göndermek istiyorsanız, aşağıdaki kodu iOS'un AppDelegate dosyasına eklemeniz gerekmektedir.
1
import Desk360
2
3
@UIApplicationMain
4
final class AppDelegate: UIResponder, UIApplicationDelegate {
5
6
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
7
Desk360.setPushToken(deviceToken: deviceToken)
8
}
9
10
}
Copied!
Yukarıdaki entegrasyon sürecinden sonra, Desk360 admin panelinden bildirim ayarlarını yapmanız gerekmektedir. Bu ayarlamalardan sonra bildirimler kullanılabilir hale gelecektir.
Ayrıca, bildirimler için bir deeplink sistemi kullanmak için aşağıdaki kod ile fazladan bir entegrasyon daha yapmanız gerekmektedir.
1
import Flutter
2
import Desk360
3
import UserNotifications
4
5
@UIApplicationMain
6
@objc class AppDelegate: FlutterAppDelegate {
7
override func application(\_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
8
Desk360.applicationLaunchChecker(launchOptions)
9
registerForRemoteNotification()
10
GeneratedPluginRegistrant.register(with: self)
11
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
12
}
13
14
override func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
15
Desk360.setPushToken(deviceToken: deviceToken)
16
}
17
18
func registerForRemoteNotification() {
19
if #available(iOS 10.0, *) {
20
let center = UNUserNotificationCenter.current()
21
center.delegate = self
22
center.requestAuthorization(options: [.sound, .alert, .badge]) { (granted, error) in
23
if error == nil {
24
DispatchQueue.main.async {
25
UIApplication.shared.registerForRemoteNotifications()
26
}
27
}
28
}
29
}
30
else {
31
UIApplication.shared.registerUserNotificationSettings(UIUserNotificationSettings(types: [.sound, .alert, .badge], categories: nil))
32
UIApplication.shared.registerForRemoteNotifications()
33
}
34
}
35
}
36
37
extension AppDelegate {
38
39
override func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
40
completionHandler([.alert])
41
Desk360.willNotificationPresent(notification.request.content.userInfo)
42
}
43
44
override func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
45
Desk360.applicationUserInfoChecker(userInfo)
46
}
47
48
@available(iOS 10.0, *)
49
override func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
50
Desk360.applicationUserInfoChecker(response.notification.request.content.userI
51
}
52
}
Copied!

Desk360 Kullanımı

Desk360SDK kullanımına aşağıdaki kod bloğu ile başlayabilirsiniz:
1
import 'package:desk360flutter/enums/environments.dart';
2
import 'package:desk360flutter/enums/platforms.dart' as Platforms;
3
import 'package:flutter/material.dart';
4
import 'package:desk360flutter/desk360flutter.dart';
5
6
if (Platform.isIOS) {
7
Desk360flutter.start(properties: {
8
"appID": "YOUR_APP_ID",
9
"deviceID": "YOUR_DEVICE_ID",
10
"languageCode": 'en',
11
"environment": Environment.SANDBOX.value, // Use PRODUCTION if you want to publish your app
12
"countryCode": 'tr',
13
"bypassCreateTicketIntro": true, // optional
14
});
15
Desk360flutter.show(animated: true);
16
17
} else { var androidDeviceInfo = await deviceInfo.androidInfo; var deviceId = androidDeviceInfo.androidId; Desk360flutter.initialize({ "appID": "YOUR_APP_ID", "appVersion": "1.0.0", "languageCode": 'en', "environment": Environment.SANDBOX.value,// Use PRODUCTION if you want to publish your app
18
"platform": Platforms.Platform.GOOGLE.value, "countryCode": 'tr', "name": "Test-092021" }, "", deviceId); Desk360flutter.start();
19
}
Copied!

Okunmamış Talepler

Okunmamış taleplere dair bir liste oluşturmak için aşağıdaki kodu kullanın:
1
// iOS only
2
Desk360flutter.getUnreadTickets().then( (results) {
3
print(results);
4
});
5
// Android Only
6
Desk360flutter.getTicketId()
7
.then((value) => {print("Ticket ID: $value")});
Copied!
Okunmamış talepleri mobil uygulamanızın dizaynına ve deneyimine uyacak şekilde gösterebilirsiniz. Spesifik bir talep detayına erişmek için aşağıdaki kodu kullanın:
1
// iOS only
2
Desk360flutter.ticketDetailsViewController(unreadTicket);
Copied!

Deep Linking

Mobil uygulamanın çalışmadığı sırada son kullanıcıların gelen bildirime tıklayabilmesini sağlamak için, aşağıdaki kodu, Desk360'ın hangi sayfayı açmasını istiyorsanız oraya eklemeniz gerekmektedir.
1
import 'package:desk360flutter/desk360flutter.dart';
2
3
...
4
Desk360flutter.showWithPushDeeplink();
5
...
Copied!
Bu, Desk360 SDK'in tetiklenmesini ve ilgili talep detayının açılmasını sağlayacaktır.

Tema Özelleştirmeleri

Desk360 görünümünü özelleştirmek için Desk360 Yönetim Panelini kullanmalısınız.

Lisans

Desk360 Flutter SDK, MIT lisans başlığı altında yayınlanmıştır. Daha fazla bilgi için GITHUB sayfasına gidin.
Last modified 6d ago