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