hyzp_ybqx-Commit029:标注整个Flutter App的入口过程01-07。找到入口处理结束,正式开始Flutter App的起点MyApp

This commit is contained in:
WinUser01
2021-12-17 10:55:41 +08:00
parent d443c6a617
commit 57ac5f618d
2 changed files with 22 additions and 10 deletions
+15 -9
View File
@@ -2,21 +2,26 @@ import 'dart:async';
import 'dart:io'; import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'common.dart'; import 'package:flutter/services.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:intl/date_symbol_data_local.dart';
//import 'file_manager.dart'; //import 'file_manager.dart';
import 'package:path_provider/path_provider.dart'; import 'package:path_provider/path_provider.dart';
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler/permission_handler.dart';
import 'package:intl/date_symbol_data_local.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:flutter/services.dart';
import '../main.dart';
import '../main.dart';
import 'common.dart';
//整个Flutter App的入口02
checkPermission() { checkPermission() {
WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();
initializeDateFormatting("zh_CN", null).then((value) async { initializeDateFormatting("zh_CN", null).then((value) async {
//整个Flutter App的入口03
bool ret = await getPermission(); bool ret = await getPermission();
if (ret) { if (ret) {
//整个Flutter App的入口04
getSDCardDir().then((value) { getSDCardDir().then((value) {
//整个Flutter App的入口05
//runApp(MyApp()); //runApp(MyApp());
runApp(MaterialApp( runApp(MaterialApp(
//title: '启动图demo', //title: '启动图demo',
@@ -25,10 +30,9 @@ checkPermission() {
brightness: Brightness.light, brightness: Brightness.light,
backgroundColor: Colors.white, backgroundColor: Colors.white,
platform: TargetPlatform.android), platform: TargetPlatform.android),
home: new SplashScreen(), home: new SplashScreen(), //整个Flutter App的入口06
routes: <String, WidgetBuilder>{ //整个Flutter App的入口07
'/home': (BuildContext context) => MyApp() routes: <String, WidgetBuilder>{'/home': (BuildContext context) => MyApp()},
},
)); ));
}); });
} else { } else {
@@ -38,6 +42,7 @@ checkPermission() {
}); });
} }
//整个Flutter App的入口03
// Permission check,适用于 permission_handler: ^5.x.x // Permission check,适用于 permission_handler: ^5.x.x
Future<bool> getPermission() async { Future<bool> getPermission() async {
if (Platform.isAndroid) { if (Platform.isAndroid) {
@@ -77,6 +82,7 @@ Future<bool> getPermission() async {
// return true; // return true;
// } // }
//整个Flutter App的入口04
Future<void> getSDCardDir() async { Future<void> getSDCardDir() async {
Common().sDCardDir = (await getExternalStorageDirectory()).path; Common().sDCardDir = (await getExternalStorageDirectory()).path;
} }
+6
View File
@@ -19,10 +19,12 @@ import 'provider/player_ratio.dart';
import 'provider/player_region.dart'; import 'provider/player_region.dart';
import 'routers/router.dart'; import 'routers/router.dart';
// 整个Flutter App的Android入口
void main() { void main() {
//file_manager_load(); //file_manager_load();
//runApp(MyApp()); //runApp(MyApp());
//整个Flutter App的入口01
WidgetsFlutterBinding.ensureInitialized(); //必须要添加这个进行初始化 否则下面会错误 WidgetsFlutterBinding.ensureInitialized(); //必须要添加这个进行初始化 否则下面会错误
//Flutter 强制竖屏 //Flutter 强制竖屏
SystemChrome.setPreferredOrientations([ SystemChrome.setPreferredOrientations([
@@ -31,6 +33,7 @@ void main() {
// DeviceOrientation.landscapeLeft, //顺时针旋转90度 // DeviceOrientation.landscapeLeft, //顺时针旋转90度
// DeviceOrientation.landscapeRight, //逆时针旋转90度 // DeviceOrientation.landscapeRight, //逆时针旋转90度
]).then((_) { ]).then((_) {
//整个Flutter App的入口02
checkPermission(); //请求用户授权 checkPermission(); //请求用户授权
}); });
} }
@@ -51,6 +54,7 @@ void main() {
// } // }
// } // }
//整个Flutter App的入口07。入口处理结束,正式开始Flutter App
class MyApp extends StatefulWidget { class MyApp extends StatefulWidget {
MyApp({Key key}) : super(key: key); MyApp({Key key}) : super(key: key);
@@ -196,6 +200,7 @@ class _MyAppState extends State<MyApp> {
} }
} }
//整个Flutter App的入口06
class SplashScreen extends StatefulWidget { class SplashScreen extends StatefulWidget {
@override @override
_SplashScreenState createState() => new _SplashScreenState(); _SplashScreenState createState() => new _SplashScreenState();
@@ -208,6 +213,7 @@ class _SplashScreenState extends State<SplashScreen> {
return new Timer(_duration, navigationPage); return new Timer(_duration, navigationPage);
} }
//整个Flutter App的入口07
void navigationPage() { void navigationPage() {
Navigator.of(context).pushReplacementNamed('/home'); Navigator.of(context).pushReplacementNamed('/home');
} }