| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- /// App 入口
- ///
- /// 启动时完成:
- /// 1. 微信 SDK 注册(fluwx registerApi + addSubscriber)
- /// 2. Stripe 发布密钥初始化
- /// 3. 国际化(中/英)、ScreenUtil 适配、EasyLoading 全局配置
- library;
- import 'package:flutter/material.dart';
- import 'package:flutter_easyloading/flutter_easyloading.dart';
- import 'package:flutter_localizations/flutter_localizations.dart';
- import 'package:flutter_screenutil/flutter_screenutil.dart';
- import 'constants.dart';
- import 'pages/home_page.dart';
- import 'service/platform/stripe_flow.dart';
- import 'service/platform/wechat_flow.dart';
- Future<void> main() async {
- WidgetsFlutterBinding.ensureInitialized();
- // 微信 SDK:注册 AppID + 订阅支付结果回调(Web 端为空实现,安全失败)
- try {
- await WechatFlow.instance.init();
- WechatFlow.instance.subscribe();
- } catch (e) {
- // 微信 SDK 初始化失败不阻塞启动(Web / 未配置 AppID 场景)
- debugPrint('微信 SDK 初始化失败(忽略): $e');
- }
- // Stripe:发布密钥初始化(真实密钥由后端 createStripePayment 下发)
- StripeFlow.instance.init(kStripePublishableKey);
- runApp(const MyApp());
- }
- class MyApp extends StatelessWidget {
- const MyApp({super.key});
- @override
- Widget build(BuildContext context) {
- // ScreenUtil 设计稿尺寸(750 宽,对应常见移动端设计稿)
- return ScreenUtilInit(
- designSize: const Size(750, 1334),
- minTextAdapt: true,
- builder: (context, child) {
- return MaterialApp(
- title: 'flutter_paydemo',
- debugShowCheckedModeBanner: false,
- theme: ThemeData(
- colorScheme: ColorScheme.fromSeed(seedColor: Colors.indigo),
- useMaterial3: true,
- ),
- localizationsDelegates: const [
- GlobalMaterialLocalizations.delegate,
- GlobalWidgetsLocalizations.delegate,
- GlobalCupertinoLocalizations.delegate,
- ],
- supportedLocales: const [
- Locale('zh', 'CN'),
- Locale('en', 'US'),
- ],
- locale: const Locale('zh', 'CN'),
- home: child ?? const HomePage(),
- // EasyLoading 全局配置
- builder: EasyLoading.init(),
- );
- },
- );
- }
- }
|