Biblioteki SALESmanago Mobile dla Flutter

Projekt powstał dla klientów, którzy w swoich aplikacjach mobilnych wykorzystują framework Flutter, umożliwiający tworzenie rozwiązań wieloplatformowych. Projekt jest oficjalnie rozwijany i wspierany przez Google. 

Biblioteka udostępniona w formie pluginu pozwala na integrację aplikacji z SALESmanago Mobile. Integracja polega na dodaniu pluginu z poziomu projektu jako zależność.

Zakres integracji

Integracja i synchronizacja kontaktów daje dostęp do funkcji:

  • mierzenie czasu, jaki użytkownik spędza na danym ekranie w aplikacji,
  • monitorowanie zdarzeń takich jak np. kliknięcia przycisku, 
  • obsługa powiadomień, 
  • przesyłanie podstawowych danych kontaktu, 
  • przesyłanie geolokalizacji. 

Wszystkie funkcjonalności dostępne są dla użytkowników systemów Android oraz iOS.

Implementacja

Aby przeprowadzić integrację, postępuj zgodnie z instrukcjami poniżej.

1. Dodanie pluginu do projektu Flutter

W pliku pubspec.yaml dodaj zależność – plugin am_monitor_plugin

Następnie uruchom z poziomu terminala komendę, aby zainstalować plugin:

flutter packages get

2. Android

W folderze project_name/android/libsumieść bibliotekę w formacie .aar.Znajdziesz ją na stronie Developers | SALESmanago. Następnie w pliku build.gradledodaj zależności, które wykorzystuje ta biblioteka:

dependencies {
   api 'androidx.appcompat:appcompat:1.0.0'
   api 'androidx.legacy:legacy-support-v4:1.0.0'
   api 'androidx.media:media:1.0.0'
   api 'com.google.firebase:firebase-messaging:21.1.0'
   api 'com.google.firebase:firebase-core:18.0.3'
   api 'com.google.android.gms:play-services-location:16.0.0'
   api 'com.google.android.gms:play-services-base:16.1.0'
   api 'androidx.constraintlayout:constraintlayout:1.1.3'
   api 'com.squareup.picasso:picasso:2.5.2'
   api 'com.google.code.gson:gson:2.8.2'
   implementation(name: 'appmanagolibrary-firebase-release', ext:'aar')
}

Podczas budowania aplikacji mogą pojawić się błędy mówiące o konieczności nadpisania elementów w AndroidManifest.xml. W takim przypadku wykorzystaj Manifest Merger.

3. iOS

Postępuj zgodnie z dokumentacją Integracja iOS, z wyjątkiem implementacji metod dla klasy AppDelegate. Te metody są już zawarte w pluginie.

Do poprawnego działania pluginu wymagany jest manager zawartości CocoaPods oraz odpowiednio skonfigurowany plik Podfile:

pod install

Po wykonaniu powyższej komendy potrzebne pakiety zostaną dodane do Flutter.

4. Korzystanie z funkcji pluginu

Opis działania metod, które udostępnia plugin, znajdziesz pod adresem https://pomoc.salesmanago.pl/developers/.

Importowanie klasy pluginu wraz z przykładem tworzeniem obiektu klasy pluginu: 

import 'package:am_monitor_plugin/am_monitor_plugin.dart';
final _amMonitorPlugin = AmMonitorPlugin();

Zliczanie czasu spędzonego w modułach:

Ważne jest, aby metody: _amMonitorPlugin.create("simpleModuleId") oraz _amMonitorPlugin.eventStart("simpleModuleId") zostały wywołane zaraz na początku, na przykład  w metodzie initState widgetu.

Metoda _amMonitorPlugin.eventEnded("simpleModuleId") powinna zostać wywołana przed przejściem do kolejnego ekranu lub przejściem aplikacji do działania w tle tak, aby poprawnie został zliczony czas spędzony w danym module. 

Synchronizacja adresu e-mail i numeru telefonu:

_amMonitorPlugin.syncEmail("email@test.com")
_amMonitorPlugin.syncMsisdn("+48123456789")

Zliczanie liczby metod wykonanych dla użytkownika:

_amMonitorPlugin.syncEmail("email@test.com")
_amMonitorPlugin.syncMsisdn("+48123456789")

Przesyłanie zdarzeń wewnętrznych:

_amMonitorPlugin.eventCustom("u_customEvent", {
 "textParameterName": {"type": "text", "value": "Some tekst"},
 "numberParameterName": {"type": "integer", "value": 123},
 "doubleParameterName": {"type": "double", "value": 123.12},
 "dateParameterName": {"type": "date", "value": DateTime.now().millisecondsSinceEpoch},
 "booleanParameterName": {"type": "boolean", "value": true}
}

Przesyłanie danych kontaktu:

_amMonitorPlugin.sendUserProperties({
 "text": {"type": "text", "value": "Tekst"},
 "howMuch": {"type": "integer", "value": 123},
 "precision": {"type": "double", "value": 123.12},
 "when": {"type": "date", "value": DateTime.now().millisecondsSinceEpoch},
 "isItTrue": {"type": "boolean", "value": true}
}

Przesyłanie geolokalizacji:

final position = await Geolocator.getCurrentPosition();
_amMonitorPlugin.sendLocation(position.latitude.toString(), position.longitude.toString());
Jeżeli potrzebujesz więcej informacji na powyższy temat skontaktuj się z nami: support@salesmanago.com +48 533 600 808
Wrzesień 26 2022 Wrzesień 21 2022