import 'package:flutter/services.dart'; import 'package:flutter/material.dart'; import 'dart:async'; import 'dart:convert'; import 'main.dart'; import 'registration.dart'; import 'activate_token.dart'; import 'purchase.dart'; class SplashScreen extends StatelessWidget { @override Widget build(BuildContext context) { // Появляется splash screen, проверяется токен. new Future.delayed(const Duration(milliseconds: 500), () { showNextScreen(context); }); return new Image.asset(splash_png, fit: BoxFit.cover); } /// Запуск следующего экрана приложения. showNextScreen(BuildContext context) async { token = await platform.invokeMethod('getToken'); print('token: $token'); // В случае, если в приложении отсутствует токен, // необходимо запустить регистрацию кассы. if (token == null) { pushRoute(context, new RegistrationScreen()); } else { checkToken(context).then((response) { print(response.body); Map parsedMap = JSON.decode(response.body); bool active = parsedMap['active']; if (active) { // Запускается экран сканера, токен кассы активирован, с его помощью можно делать запросы к pos-api. startScanner(context); } else { // Запускается экран ожидания активации токена. // В реальности токен активируется в админке вручную, // на тестовом сервере токен активируется через несколько минут после создания. pushRoute(context, new FinishRegistrationScreen()); } }).catchError((error) { print(error.toString()); return false; }); } } }