import 'dart:async'; import 'package:flutter/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'login/login_model.dart'; class StartPage extends StatefulWidget { const StartPage({super.key}); @override State createState() => _StartPageState(); } class _StartPageState extends State { late StreamSubscription subscription; LoginModel _viewmodel = new LoginModel(); @override void initState() { // TODO: implement initState super.initState(); subscription = _viewmodel.streamController.stream.listen((newData) { String code = newData['code']; if (code.isNotEmpty) { switch (code) { case "login": Navigator.pushReplacementNamed(context, "/HomePage"); break; default: Navigator.pushReplacementNamed(context, "/HomePage"); break; } } }); _loadData(); } @override void dispose() { // TODO: implement dispose subscription.cancel(); super.dispose(); } Future _loadData() async { // 获取token final SharedPreferences prefs = await SharedPreferences.getInstance(); final String? token = prefs.getString('token'); if (token != "") { _viewmodel.login("", "", 0, token); } else { Navigator.pushReplacementNamed(context, "/HomePage"); } } @override Widget build(BuildContext context) { return Container( child: Image( width: MediaQuery.of(context).size.width, height: MediaQuery.of(context).size.height, fit: BoxFit.cover, image: AssetImage('assets/images/img_start.png'), ), ); } }