- 配置 edge-to-edge 沉浸式状态栏与刘海屏适配 - 新增百度地图权限、AK 配置及定位权限说明 - 接入 MethodChannel 实现返回键退后台热启动优化 - 配置自定义签名并更新构建逻辑 - 完善 token 刷新与鉴权失效统一处理 - 新增地图页与截图页路由 - 修复返回键拦截导致的 PopScope 失效问题
44 lines
1.5 KiB
Dart
44 lines
1.5 KiB
Dart
import 'package:cupertino_ui/cupertino_ui.dart';
|
||
import 'package:flutter/widgets.dart';
|
||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||
import 'package:go_router/go_router.dart';
|
||
|
||
import '../l10n/app_localizations.dart';
|
||
import 'theme/app_theme.dart';
|
||
|
||
/// 应用根组件。
|
||
///
|
||
/// 使用 CupertinoApp.router 接入 GoRouter,并在 [ProviderScope] 内运行。
|
||
class App extends StatelessWidget {
|
||
const App({super.key, required this.router});
|
||
|
||
final GoRouter router;
|
||
|
||
@override
|
||
Widget build(BuildContext context) {
|
||
return CupertinoApp.router(
|
||
title: '桐桐家庭关怀',
|
||
theme: AppTheme.cupertinoTheme,
|
||
routerConfig: router,
|
||
localizationsDelegates: <LocalizationsDelegate<dynamic>>[
|
||
AppLocalizations.delegate,
|
||
// 注意:本工程使用第三方 cupertino_ui 包,其 Cupertino 组件(如
|
||
// CupertinoTabBar)依赖的是 cupertino_ui 自带的 CupertinoLocalizations,
|
||
// 而非 Flutter SDK 的 GlobalCupertinoLocalizations。因此这里必须注册
|
||
// cupertino_ui 的 delegate,否则 CupertinoTabBar 等组件会在运行时
|
||
// 抛 "could not find a CupertinoLocalizations ancestor" 异常。
|
||
...GlobalCupertinoLocalizations.delegates,
|
||
],
|
||
supportedLocales: AppLocalizations.supportedLocales,
|
||
debugShowCheckedModeBanner: false,
|
||
);
|
||
}
|
||
}
|
||
|
||
/// 便于在 main 中统一构建 ProviderScope + App。
|
||
Widget buildApp(GoRouter router) {
|
||
return ProviderScope(
|
||
child: App(router: router),
|
||
);
|
||
}
|