web-dev-qa-db-fra.com

Comment passez-vous des arguments de la ligne de commande à la main principale à Flutter / Dart?

Comment dirigeriez-vous une commande et passez des arguments personnalisés avec Flutter/Dart afin qu'elles puissent être accessibles dans l'appel main() appel comme:

flutter run -device [my custom arg]

Alors, je peux y accéder avec:

void main(List<String> args) {
  print(args.toString());
}

Merci.

16
Miguel Ruivo

J'ai eu le même problème, alors j'ai écrit un colis et des instructions pouvant aider.

https://pub.dev/packages/launch_args

Je ne suis pas au courant d'un moyen de passer les arguments via la commande flutter. Autant que je sache, vous devez d'abord construire l'application via Flutter, puis utilisez l'autre CLIS pour transmettre les outils.

Android

adb -s $DEVICE_ID Shell am start \
  -n $Android_PACKAGE/$Android_ACTIVITY \
  -ez [arg name] [value] \
  -ez [arg name2] [value 2] \
  ...

iOS

$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] ...

Assurez-vous d'utiliser la version de ios-deploy Cela a hébergé dans les artefacts mis en cache de Flutter. Ils ont dû faire des modifications à cet outil vs la standard que vous pouvez installer via Homebrew car je ne pouvais que travailler les choses lorsque j'ai utilisé la version interne de Flutter.

0
Jeff Peiffer