我使用flutter_email_sender。我的应用程序有一个屏幕,用户可以在上面输入自己的名字等信息,然后点击一个文本按钮,将他们重定向到手机上的电子邮件应用程序(比如Gmail),在那里,使用他们之前输入的信息预先写好的信息已经在电子邮件的正文中。我的问题是
一旦用户发送了电子邮件并被重定向回我的应用程序,我想要显示一个对话框,上面写着"您的电子邮件已成功发送!"为此,我只需在调用flutter_email_sender的async函数后添加一个对话框。问题是,如果用户没有发送电子邮件,而是简单地返回到应用程序,因为对函数的调用是成功的,那么成功对话框仍然会出现。但是这个人没有发送电子邮件,所以它不应该出现。是否有一种方法可以让我跟踪如果用户实际上发送电子邮件,然后只显示对话框?
就像我上面说的,我只是在函数被调用后返回一个AlertDialog…
await FlutterEmailSender.send(email);
Future<void> showSuccessDialog() async {
return showDialog(
context: context,
barrierDismissible: false,
builder: (BuildContext context) {
return AlertDialog(
title: const Text('Success!!'),
content: SingleChildScrollView(
child: ListBody(
children: [
const Text('Your email has been sent.'),
],
),
),
actions: [
TextButton(
onPressed: () {
Navigator.of(context).pop();
},
child: const Text('Ok'),
),
],
);
}
);
}
showSuccessDialog();
…但是,只要该功能成功地将他们重定向到电子邮件应用程序,即使用户实际上没有发送电子邮件,也会出现成功对话框。
这似乎是不可能的。FlutterEmailSender.send()
与void
完成,因此调用方没有可用的信息。