import 'package:flutter/services.dart'; import 'package:flutter/material.dart'; import 'main.dart'; import 'registration.dart'; import 'activate_token.dart'; import 'dart:async'; class SplashScreen extends StatelessWidget { @override Widget build(BuildContext context) { // Splash скрин зависает мимнимум на 1 секунду. // После этого начинается проверка токена. new Future.delayed(const Duration(milliseconds: 1000), () { _showNextScreen(context); }); return new Image.asset(splash_png, fit: BoxFit.cover); } /// Запуск следующего экрана приложения. _showNextScreen(BuildContext context) async { const platform = const MethodChannel('com.dinect.checker/instance_id'); token = await platform.invokeMethod('getToken'); // В случае, если в приложении отсутствует токен, // необходимо запустить регистрацию кассы. if (token == null) { pushRoute(context, new RegistrationScreen()); } else { checkToken(context, new CheckTokenCallback()); } } } class CheckTokenCallback extends Callback { /// Запускается экран ожидания активации токена. /// В реальности токен активируется в админке вручную, /// на тестовом сервере токен активируется через несколько минут после создания. call(BuildContext context) { pushRoute(context, new FinishRegistrationScreen()); } }