Flutter Linux构建信息获取插件build_info_linux的使用

发布于 1周前 作者 nodeper 来自 Flutter

build_info_linux #

这是 build_info 的 Linux 实现。

用法 #

此包被 推荐 使用。这意味着你可以像正常使用 build_info 一样使用它。当你这样做时,此包会自动包含在你的应用中,因此你无需将其添加到你的 pubspec.yaml 文件中。

然而,如果你导入此包以直接使用其任何 API,则应像往常一样将其添加到你的 pubspec.yaml 文件中。

关于 Linux 版本的实现 #

Linux 版本的 build_info 工作方式如下:

  1. 在构建时,linux/CMakeLists.txt 定义了 BUILD_INFO_TIMESTAMP 常量,并将构建时间设置为毫秒。
  2. 从 Flutter 调用 BuildInfo.fromPlatform 方法。
  3. BUILD_INFO_TIMESTAMP 常量的值被设置为构建日期和时间。

在 Linux 版本中,安装日期和时间始终为 null。

example/lib/main.dart

// Copyright 2024 Craftsoft LLC. All rights reserved.
// Use of this source code is governed by a MIT-style license that can be
// found in the LICENSE file.

import ‘package:flutter/material.dart’; import ‘package:flutter/services.dart’; import ‘package:build_info_platform_interface/build_info_data.dart’; import ‘package:build_info_linux/build_info_linux.dart’;

void main() { runApp(const MyApp()); }

class MyApp extends StatefulWidget { const MyApp({super.key});

@override State<MyApp> createState() => _MyAppState(); }

class _MyAppState extends State<MyApp> { BuildInfoData? _buildInfoData; final _buildInfoLinuxPlugin = BuildInfoLinux();

@override void initState() { super.initState(); initPlatformState(); }

// 平台消息是异步的,所以我们初始化在一个异步方法中。 Future<void> initPlatformState() async { BuildInfoData? buildInfoData; // 平台消息可能会失败,所以我们使用一个 try/catch PlatformException。 // 我们还处理消息可能返回 null 的情况。 try { buildInfoData = await _buildInfoLinuxPlugin.fromPlatform(); } on PlatformException catch (e, stackTrace) { debugPrint(e.message); debugPrintStack(stackTrace: stackTrace); }

// 如果小部件在异步平台消息发送期间从树中移除,我们希望丢弃回复而不是调用
// setState 来更新我们的不存在的外观。
if (!mounted) return;

setState(() {
  _buildInfoData = buildInfoData;
});

}

@override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: const Text(‘插件示例应用’), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.start, children: [ Text(‘BuildDate: ${_buildInfoData?.buildDate}’), Text(‘InstallDate: ${_buildInfoData?.installDate}’), ], ), ), ), ); } }


更多关于Flutter Linux构建信息获取插件build_info_linux的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter Linux构建信息获取插件build_info_linux的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用build_info_linux插件来获取Linux构建信息的代码示例。build_info_linux插件允许你访问Linux构建特有的信息,例如包名、版本等。

步骤 1: 添加依赖

首先,你需要在pubspec.yaml文件中添加build_info_linux依赖:

dependencies:
  flutter:
    sdk: flutter
  build_info_linux: ^0.1.0  # 请检查最新版本号

然后运行flutter pub get来安装依赖。

步骤 2: 使用插件获取构建信息

接下来,在你的Flutter项目中,你可以使用BuildInfoLinux类来获取Linux构建信息。以下是一个简单的示例,展示如何在Flutter应用中获取并显示这些信息。

import 'package:flutter/material.dart';
import 'package:build_info_linux/build_info_linux.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Linux Build Info Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: BuildInfoScreen(),
    );
  }
}

class BuildInfoScreen extends StatefulWidget {
  @override
  _BuildInfoScreenState createState() => _BuildInfoScreenState();
}

class _BuildInfoScreenState extends State<BuildInfoScreen> {
  String _packageName = 'Unknown';
  String _versionName = 'Unknown';
  String _versionCode = 'Unknown';

  @override
  void initState() {
    super.initState();
    _initBuildInfo();
  }

  Future<void> _initBuildInfo() async {
    final BuildInfoLinux buildInfo = await BuildInfoLinux.instance;
    setState(() {
      _packageName = buildInfo.packageName;
      _versionName = buildInfo.versionName;
      _versionCode = buildInfo.versionCode.toString();
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Linux Build Info'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: <Widget>[
            Text('Package Name: $_packageName'),
            SizedBox(height: 16),
            Text('Version Name: $_versionName'),
            SizedBox(height: 16),
            Text('Version Code: $_versionCode'),
          ],
        ),
      ),
    );
  }
}

解释

  1. 依赖管理:在pubspec.yaml文件中添加build_info_linux依赖。
  2. 主应用:定义一个基本的Flutter应用,其中包含一个显示构建信息的屏幕。
  3. 状态管理:在_BuildInfoScreenState中,使用initState方法来异步获取构建信息,并在获取完成后更新状态。
  4. UI展示:使用ScaffoldColumn来展示包名、版本名和版本号。

注意事项

  • 确保你在Linux环境下运行这个Flutter应用,因为build_info_linux插件是专为Linux平台设计的。
  • 插件的版本号可能会更新,所以在使用前请检查pub.dev上的最新版本。

这个示例代码展示了如何在Flutter应用中集成和使用build_info_linux插件来获取Linux构建信息。希望这对你有所帮助!

回到顶部