Restrict a Windows app to only be able to open one instance at a time.
- Add
WidgetsFlutterBinding.ensureInitialized();
to the start of your appsmain
function. - Add the
async
modifier to your appsmain
function. - Add a call to
WindowsSingleInstance.ensureSingleInstance()
, passing the apps startup args, a custom app string unique to your app (a-z, 0-9, _ and - only), and an optional callback function.
void main(List<String> args) async {
WidgetsFlutterBinding.ensureInitialized();
await WindowsSingleInstance.ensureSingleInstance(
args,
"custom_identifier",
onSecondWindow: (args) {
print(args);
});
runApp(const MyApp());
}