返回

Flutter翻译:用Flutter为Linux编写插件

前端

嗨,希望您在这次流行病中一切都好。我们都知道Flutter最近用canonical扩展了对linux的支持。有了这个,我们现在可以更容易地用Flutter为linux构建和部署应用程序了。在这个例子中,我们将创建一个插件,它将为我们提供电池百分比水平和它的技术。

在你的插件文件夹中

首先,我们创建一个名为“battery”的目录。

mkdir battery
cd battery

然后,我们初始化一个新的Flutter插件项目。

flutter create . --template=plugin

这将创建一个名为“battery”的新目录,其中包含一个基本的Flutter插件项目。

在“android”目录中

我们需要为Android平台添加支持。打开“android”目录,您将找到一个名为“build.gradle”的文件。将以下代码添加到文件的底部:

dependencies {
  implementation 'androidx.annotation:annotation:1.1.0'
}

在“ios”目录中

我们需要为iOS平台添加支持。打开“ios”目录,您将找到一个名为“Podfile”的文件。将以下代码添加到文件的底部:

target 'battery' do
  pod 'Flutter'
end

在“lib”目录中

现在,我们需要在“lib”目录中创建一个名为“battery.dart”的文件。这将是我们的插件的主文件。

// battery.dart

import 'dart:async';

class Battery {
  static const MethodChannel _channel =
      MethodChannel('samples.flutter.dev/battery');

  static Future<int> getBatteryLevel() async {
    final int batteryLevel =
        await _channel.invokeMethod('getBatteryLevel');
    return batteryLevel;
  }

  static Future<String> getBatteryTechnology() async {
    final String batteryTechnology =
        await _channel.invokeMethod('getBatteryTechnology');
    return batteryTechnology;
  }
}

在“example”目录中

现在,我们需要创建一个示例应用程序来测试我们的插件。打开“example”目录,您将找到一个名为“main.dart”的文件。将以下代码添加到文件的底部:

import 'package:battery/battery.dart';

void main() async {
  final int batteryLevel = await Battery.getBatteryLevel();
  final String batteryTechnology = await Battery.getBatteryTechnology();

  print('Battery level: $batteryLevel%');
  print('Battery technology: $batteryTechnology');
}

构建并运行示例应用程序

现在,我们可以构建并运行示例应用程序了。打开终端窗口并导航到“example”目录。然后,运行以下命令:

flutter run

这将构建并运行示例应用程序。您应该会看到以下输出:

Battery level: 99%
Battery technology: lithium-ion

总结

就是这样!您已经成功创建了一个Flutter插件,它可以为Linux提供电池百分比水平和技术。现在,您可以将其集成到您自己的Flutter应用程序中,并开始构建一些很酷的东西!