Экран Flutter spla sh с логикой c внутри - PullRequest
1 голос
/ 08 февраля 2020

Я хочу сделать экран spla sh во флаттере с некоторыми логинами c, чтобы узнать, уже вошел ли пользователь в систему или нет, чтобы направить его на нужную страницу.

Я сделал экраны Android и iOS spla sh по отдельности, но, разумеется, у меня не было логинов c внутри них, а затем сделал еще один экран spla sh во флаттере, чтобы узнать, был ли пользователь ранее вошли или нет, проблема в том, что существует небольшой странный переход между родным экраном spla sh и флаттером, так есть ли решение, чтобы избежать этого перехода? Или иметь логи c внутри собственного экрана spla sh, который связывается с SharedPreferences?

1 Ответ

0 голосов
/ 08 февраля 2020

Не делайте флаттер спла sh. Пусть родной iOS / Android spla sh заполнит экран, в то время как код main приложения Flutter решит показать домашнюю страницу или страницу входа в систему. Это должен быть очень быстрый процесс, если все, что вы делаете, ищет в SharedPreferences токен сеанса.

Я только что ответил сегодня на два других вопроса, которые касаются этой же проблемы. Думаю, они должны помочь ...

{ ссылка }

{ ссылка }

ОБНОВЛЕНИЕ

Я создал тестовое приложение Flutter.

Я установил красный экран Android spla sh.

Я изменил содержимое main.dart на последующий.

import 'package:flutter/material.dart';

void main() async {
  await Future.delayed(Duration(seconds: 5));
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(final BuildContext context) {
    return MaterialApp(
      title: 'Splash Demo',
      theme: ThemeData(primarySwatch: Colors.blue),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(final BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text("My Home Page")),
      body: Center(child: const Text("My Home Page")),
    );
  }
}

Я запустил приложение на устройстве Android с flutter run --release.

Я вижу красный экран примерно 0,5 секунды, затем вижу черный экран в течение 5 секунд, и наконец, увидеть домашний экран.

Хм. Я ожидал, что красный экран будет отображаться в течение 5,5 секунд, а затем начальный экран. Я не ожидал, что черный экран покажет.

...