123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- import 'dart:io';
- import 'dart:async';
- import 'package:amap_map_fluttify/amap_map_fluttify.dart';
- import 'package:fluro/fluro.dart';
- import 'package:flutter/material.dart';
- import 'package:flutter/services.dart';
- import 'package:flutter_bugly/flutter_bugly.dart';
- import 'package:flutter_localizations/flutter_localizations.dart';
- import 'package:liftmanager/internal/home/splash_page.dart';
- import 'package:liftmanager/provider/theme_provider.dart';
- import 'package:liftmanager/routers/application.dart';
- import 'package:liftmanager/routers/routers.dart';
- import 'package:liftmanager/utils/toast.dart';
- import 'package:oktoast/oktoast.dart';
- import 'package:provider/provider.dart';
- import 'package:liftmanager/internal/bbs/provide/websocket.dart';
- import 'package:flutter_picker/flutter_picker.dart';
- // import 'package:amap_location_fluttify/amap_location_fluttify.dart';
- import 'package:fake_push/fake_push.dart';
- import 'package:uni_links/uni_links.dart';
- import 'package:liftmanager/routers/fluro_navigator.dart';
- import 'package:orientation/orientation.dart';
- void main() {
- WidgetsFlutterBinding.ensureInitialized();
- FlutterBugly.postCatchedException(() async {
- // 强制竖屏
- // SystemChrome.setPreferredOrientations(
- // [DeviceOrientation.portraitUp]);
- OrientationPlugin.forceOrientation(DeviceOrientation.portraitUp);
- FlutterBugly.init(androidAppId: "ae4e3d567d", iOSAppId: "4f09cdc82c");
- // 透明状态栏
- if (Platform.isAndroid) {
- SystemUiOverlayStyle systemUiOverlayStyle =
- SystemUiOverlayStyle(statusBarColor: Colors.transparent);
- SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
- }
- await AmapService.init(
- iosKey: '7724c41be3ebe0cb7e5db4d79edc51b7',
- androidKey: '9eaae78b5b6b4ba78460b2e2539b798d');
- //下面是之前测试的
- // await AmapService.init(
- // iosKey: '7724c41be3ebe0cb7e5db4d79edc51b7',
- // androidKey: '28e7c3353ae0d66cdda8650a02d685c5');
- /// Fluttify引擎的日志
- await enableFluttifyLog(false); // 关闭log
- // runApp(
- // MultiProvider(
- // providers: [
- // // 环境配置
- // ChangeNotifierProvider(
- // create: (BuildContext context) => WebSocketProvide(),
- // ),
- // ],
- // child: MyApp(), // App 挂载
- // ),
- // );
-
- runZoned(() {
- runApp(
- MultiProvider(
- providers: [
- // 环境配置
- ChangeNotifierProvider(
- create: (BuildContext context) => WebSocketProvide(),
- ),
- ],
- child: MyApp(), // App 挂载
- ),
- );
- }, onError: (Object error, StackTrace stack) {
- // print(error);
- // print(stack);
- });
- });
- }
- class MyApp extends StatefulWidget {
- final Widget home;
- MyApp({this.home}) {
- final router = Router();
- Routers.configureRouters(router);
- Application.router = router;
- }
- @override
- _MyAppState createState() => _MyAppState();
- }
- class _MyAppState extends State<MyApp> {
- // class _MyAppState extends State<MyApp> with AmapLocationDisposeMixin {
- Push _push = Push();
- StreamSubscription<String> _receiveDeviceToken;
- StreamSubscription<Message> _receiveMessage;
- StreamSubscription<Message> _receiveNotification;
- StreamSubscription<String> _launchNotification;
- StreamSubscription<String> _resumeNotification;
- @override
- void initState() {
- // TODO: implement initState
- super.initState();
- _receiveDeviceToken =
- _push.receiveDeviceToken().listen(_handleReceiveDeviceToken);
- _receiveMessage = _push.receiveMessage().listen(_handleReceiveMessage);
- _receiveNotification =
- _push.receiveNotification().listen(_handleReceiveNotification);
- _launchNotification =
- _push.launchNotification().listen(_handleLaunchNotification);
- _resumeNotification =
- _push.resumeNotification().listen(_handleResumeNotification);
- _push.areNotificationsEnabled().then((l){
- print("是否开启通知:$l");
- });
- // _push.openNotificationsSettings();
- _push.startWork(enableDebug: false);
- }
-
-
- void _handleReceiveDeviceToken(String deviceToken) async {
- if(deviceToken != null){
- print('receiveDeviceToken: $deviceToken - ${await _push.getDeviceToken()}');
- _showTips('receiveDeviceToken', deviceToken);
- }
- }
- void _handleReceiveMessage(Message message) {
- print(
- 'receiveMessage: ${message.title} - ${message.content} - ${message.customContent}');
- _showTips('receiveMessage',
- '${message.title} - ${message.content} - ${message.customContent}');
- }
- void _handleReceiveNotification(Message notification) {
- print(
- 'receiveNotification: ${notification.title} - ${notification.content} - ${notification.customContent}');
- _showTips('receiveNotification',
- '${notification.title} - ${notification.content} - ${notification.customContent}');
- }
- void _handleLaunchNotification(String customContent) {
- print('launchNotification: $customContent');
- _showTips('launchNotification', customContent);
- }
- void _handleResumeNotification(String customContent) {
- print('resumeNotification: $customContent');
- _showTips('resumeNotification', customContent);
- }
- void _showTips(String title, String content) {
- // showToast(content);
- }
- @override
- void dispose() {
- if (_receiveDeviceToken != null) {
- _receiveDeviceToken.cancel();
- }
- if (_receiveMessage != null) {
- _receiveMessage.cancel();
- }
- if (_receiveNotification != null) {
- _receiveNotification.cancel();
- }
- if (_launchNotification != null) {
- _launchNotification.cancel();
- }
- if (_resumeNotification != null) {
- _resumeNotification.cancel();
- }
- super.dispose();
- }
- @override
- Widget build(BuildContext context) {
- return OKToast(
- child: ChangeNotifierProvider<ThemeProvider>(
- create: (_) => ThemeProvider(),
- child: Consumer<ThemeProvider>(
- builder: (_, provider, __) {
- return MaterialApp(
- title: '电梯管家',
- //showPerformanceOverlay: true, //显示性能标签
- //debugShowCheckedModeBanner: false,
- //checkerboardRasterCacheImages: true,
- theme: provider.getTheme(),
- darkTheme: provider.getTheme(isDarkMode: true),
- home: widget.home ?? SplashPage(),
- onGenerateRoute: Application.router.generator,
- localizationsDelegates: const [
- GlobalMaterialLocalizations.delegate,
- GlobalWidgetsLocalizations.delegate,
- GlobalCupertinoLocalizations.delegate,
- ],
- supportedLocales: const [
- // Locale('zh', 'CH'),
- // Locale('en', 'US')
- const Locale('zh', 'Hans'), // China
- const Locale('zh', ''), // China
- ]);
- },
- ),
- ),
- backgroundColor: Colors.black54,
- textPadding:
- const EdgeInsets.symmetric(horizontal: 16.0, vertical: 10.0),
- radius: 20.0,
- position: ToastPosition.bottom);
- }
- }
|