vpn_sdp_banner 1.0.2 copy "vpn_sdp_banner: ^1.0.2" to clipboard
vpn_sdp_banner: ^1.0.2 copied to clipboard

sdp_vpn 状态监听banner组件

example/lib/main.dart

import 'dart:io';

import 'package:common_utils/common_utils.dart';
// ignore: depend_on_referenced_packages
import 'package:dio/dio.dart';
import 'package:ecp_global/ecp_global.dart';
import 'package:ecp_theme/ecp_theme.dart';
import 'package:example/sdp_demo_page.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:ecp_net/net.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:pretty_dio_logger/pretty_dio_logger.dart';

void main() async {
  await initProperty();
  runApp(const MyApp());
}

///初始化各个组件,包含第三方库组件
Future initProperty() async {
  initNet();
  LogUtil.init(tag: "example", isDebug: !kReleaseMode);
  WidgetsFlutterBinding.ensureInitialized();
  fullScreen();
  initRefresh();
}

void fullScreen() {
  if (Platform.isAndroid) {
    // 以下两行 设置android状态栏为透明的沉浸。写在组件渲染之后,是为了在渲染后进行set赋值,覆盖状态栏,写在渲染之前MaterialApp组件会覆盖掉这个值。
    SystemUiOverlayStyle systemUiOverlayStyle =
        const SystemUiOverlayStyle(statusBarColor: Colors.transparent);
    SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
    // await AndroidInAppWebViewController.setWebContentsDebuggingEnabled(!kReleaseMode);
  }
}

void initRefresh() {
  EasyRefresh.defaultHeader = ClassicalHeader(
    enableInfiniteRefresh: false,
    refreshingText: "加载中",
    refreshFailedText: "加载失败",
    refreshedText: "加载完成",
    noMoreText: "没有更多",
    refreshReadyText: "放开刷新",
    refreshText: "下拉刷新",
    infoText: "上次更新%T",
    textColor: Colors.grey,
  );
  EasyRefresh.defaultFooter = ClassicalFooter(
    enableInfiniteLoad: false,
    loadedText: "加载完成",
    loadFailedText: "加载失败",
    loadingText: "加载中",
    loadReadyText: "加载更多",
    noMoreText: "没有更多",
    loadText: "加载更多",
    infoText: "上次加载%T",
    textColor: Colors.grey,
  );
}

void initNet() {
  var convert = NetConvert(
    codeKeys: ["code"],
    messageKeys: ['msg'],
    successFlags: ['200'],
  );
  var options = BaseOptions(
    baseUrl: _BaseUrl.local,
    connectTimeout: const Duration(milliseconds: 10 * 1000),
    receiveTimeout: const Duration(milliseconds: 10 * 1000),
    sendTimeout: const Duration(milliseconds: 10 * 1000),
  );

  NetConfig.instance
    ..convert = convert
    ..dynamicHeader = (options, header) async {
      header["XT-token"] = RuntimeUtils.getRuntimeEntity()?.token;
      header["Current-Dept"] = RuntimeUtils.getRuntimeEntity()?.mainDept?.id;
    }
    ..initialDio = (dio) {
      dio.interceptors.add(PrettyDioLogger(
        requestHeader: true,
        responseBody: true,
        requestBody: true,
      ));
    }
    ..baseOptions = options;
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return ScreenUtilInit(
        useInheritedMediaQuery: true,
        builder: (context, widget) {
          return MaterialApp(
            title: 'Flutter Demo',
            navigatorKey: G.navigatorKey,
            theme: Themes.light,
            home: const SdpDemoPage(),
            builder: FlutterSmartDialog.init(),
            navigatorObservers: [FlutterSmartDialog.observer],
            localizationsDelegates: GlobalMaterialLocalizations.delegates,
            supportedLocales: const [Locale('zh', 'CH')],
          );
        });
  }
}

class _BaseUrl {
  _BaseUrl._();
  static const String dev = "http://135.0.123.110:8700/api";
  static const String innerRelease = "https://gzdxoa.gzdx.com.cn:30081/api";
  static const String local = "http://135.31.66.50:6602";
}
0
likes
130
points
12
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

sdp_vpn 状态监听banner组件

Homepage

License

Apache-2.0 (license)

Dependencies

cupertino_icons, dict_dart_extension, dict_flutter_extension, ecp_net, ecp_theme, ecp_widget, flutter, flutter_screenutil, vpn_sdp

More

Packages that depend on vpn_sdp_banner