Flutter启动参数获取插件launch_args的使用
Flutter启动参数获取插件launch_args的使用
目录
launch_args
目录
简介
launch_args
是一个用于获取传递给 Android 或 iOS 应用程序的参数的 Flutter 包。目前该插件仅支持 Android 和 iOS,因为大多数其他平台会直接将参数传递给 main
函数。
使用方法
在 main.dart
文件中,你需要初始化 WidgetsFlutterBinding
并获取传递的参数。如果未接收到任何参数,则从插件中获取默认参数。
import 'package:flutter/material.dart';
import 'package:launch_args/launch_args.dart';
Future<void> main(List<String>? args) async {
WidgetsFlutterBinding.ensureInitialized();
// 如果没有传递参数,则使用插件获取参数
args = args?.isNotEmpty == true ? args : (await LaunchArgs.args);
runApp(MyApp(args: args));
}
传递参数
Android
在 Android 中,可以使用 adb
命令来传递参数到应用。
adb -s $DEVICE_ID shell am start \
-n $ANDROID_PACKAGE/$ANDROID_ACTIVITY \
-ez [arg name] [value] \
-ez [arg name2] [value 2] \
...
注意:在 Android 上,参数名称前缀为 --
,以使其与 args
包中的选项兼容。Android 总是以键值对的形式传递参数。
iOS
在 iOS 中,可以使用 ios-deploy
工具来传递参数到应用。
$FLUTTER_HOME/bin/cache/artifacts/ios-deploy/ios-deploy --id $DEVICE_ID \
--bundle build/ios/iphoneos/Runner.app \
--debug \
--args [arg name] [arg value] [arg name2] [arg value2] ...
示例代码
以下是完整的示例代码,展示了如何使用 launch_args
插件获取传递的参数并在应用中显示它们。
import 'package:flutter/material.dart';
import 'package:launch_args/launch_args.dart';
Future<void> main(List<String>? args) async {
WidgetsFlutterBinding.ensureInitialized();
// 如果没有传递参数,则使用插件获取参数
args = args?.isNotEmpty == true ? args : (await LaunchArgs.args);
runApp(MyApp(args: args));
}
class MyApp extends StatelessWidget {
const MyApp({super.key, this.args});
final List<String>? args;
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Launch Args'),
),
body: ListView(
children: [
for (var arg in args ?? <String>['n/a'])
ListTile(
title: Text(arg),
),
],
),
),
);
}
}
更多关于Flutter启动参数获取插件launch_args的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复