Публичный API SDK
class AltcraftSDK
Точка входа в SDK. Все методы статические. JWT-провайдер и push token providers регистрируются нативно: Application.onCreate на Android и AppDelegate на iOS. Через Dart API передаются конфигурация, команды подписки, мобильные события, push-токены, события SDK и вспомогательные операции.
AltcraftSDK
// ---- Инициализация и состояние ----
├─ static Future<void> initialize(AltcraftConfig config)
├─ static Future<void> clear()
├─ static Future<bool> requestNotificationPermission()
└─ static Future<void> unlockInitialOperationsInThisSession()
// ---- Подписка на push ----
├─ static Future<void> pushSubscribe({bool? sync, ...})
├─ static Future<void> pushSuspend({bool? sync, ...})
├─ static Future<void> pushUnSubscribe({bool? sync, ...})
└─ static Future<ResponseWithHttpCode?> unSuspendPushSubscription()
// ---- Статус подписки ----
├─ static Future<ResponseWithHttpCode?> getStatusOfLatestSubscription()
├─ static Future<ResponseWithHttpCode?> getStatusForCurrentSubscription()
└─ static Future<ResponseWithHttpCode?> getStatusOfLatestSubscriptionForProvider(String? provider)
// ---- События SDK ----
├─ static Stream<SdkEvent> subscribeToEvents()
└─ static Future<void> unsubscribeFromEvents()
// ---- Мобильные события и профиль ----
├─ static Future<void> mobileEvent({required String sid, required String eventName, ...})
└─ static Future<void> updateProfileFields({Map<String, dynamic>? profileFields, bool? skipTriggers})
// ---- Push-токены ----
├─ static Future<TokenData?> getPushToken()
├─ static Future<void> setPushToken(String provider, String? token)
├─ static Future<void> forcedTokenUpdate()
├─ static Future<void> deleteDeviceToken(String provider)
└─ static Future<void> changePushProviderPriorityList(List<String> priorityList)
// ---- Push-уведомления ----
├─ static Future<void> takePush(Map<String, String> message)
├─ static Future<bool> isAltcraftPush(Map<String, String> message)
├─ static Future<void> deliveryEvent(Map<String, String>? message, String? messageUID)
└─ static Future<void> openEvent(Map<String, String>? message, String? messageUID)
// ---- Native storage ----
├─ static Future<void> setAppGroup(String? groupName)
└─ static Future<void> setUserDefaultsValue(String? suiteName, String key, String? value)
Большинство мето дов возвращает Future<void> и не возвращает серверный ответ напрямую. Ошибки платформенного вызова приходят как AltcraftException. Серверный результат операций подписки, обновления профиля, мобильных событий и retry-ошибок нужно читать через subscribeToEvents().
Инициализация
initialize(config)
static Future<void> initialize(AltcraftConfig config)
Инициализирует Altcraft SDK с заданной конфигурацией. Вызывается один раз при старте приложения, до выполнения основных SDK-операций.
| Параметр | Тип | Описание |
|---|---|---|
config | AltcraftConfig | Объект конфигурации SDK. Поле apiUrl обязательно. |
Возвращает: Future<void> — завершается, когда нативный SDK завершил инициализацию.
Выбрасывает: AltcraftException при ошибке конфигурации или инициализации. Основные коды: ALTCRAFT_INIT_INVALID_CONFIG, ALTCRAFT_INIT_ERROR, INITIALIZATION_FAILED, SDK_ERROR.
import 'package:altcraft_sdk/altcraft_sdk.dart';
import 'package:flutter/widgets.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await AltcraftSDK.initialize(
const AltcraftConfig(
apiUrl: 'https://pxl-demo.altcraft.com',
appInfo: AppInfo(
appID: '1:100000000000:android:1000000000000000',
appIID: '10000000-0000-4000-8000-000000000001',
appVer: '1.0.0',
),
providerPriorityList: ['android-firebase'],
enableLogging: true,
),
);
runApp(const MyApp());
}
clear()
static Future<void> clear()
Очищает данные SDK на нативной стороне: локальное хранилище SDK, сохранённые токены и отложенные операции.