我正在使用flutter_email_sender。我的应用程序有一个屏幕,用户可以在其中输入姓名等信息,然后单击文本按钮,将其重定向到手机中的电子邮件应用程序(如Gmail),在该应用程序中,使用之前输入的信息预先编写的消息已经出现在电子邮件正文中。我的问题是:
一旦用户发送了电子邮件并被重定向回我的应用程序,我希望显示一个对话框,内容沿着为“您的电子邮件已成功发送!"。为此,我只需在flutter_email_sender的异步函数被调用后添加一个对话框。问题是,如果用户没有发送电子邮件,而是简单地返回应用程序,因为函数调用成功,所以成功对话框仍然出现。但是这个人 * 没有 * 发送电子邮件,所以它不应该出现。有没有办法让我跟踪用户是否 * 确实 * 发送了电子邮件,然后只显示对话框?
正如我上面所说的,我只是在调用函数后返回一个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();
...但这会导致成功对话框出现,即使该人实际上还没有发送电子邮件,只要该功能成功地将他们重定向到电子邮件应用程序。
1条答案
按热度按时间wgeznvg71#
这似乎是不可能的。
FlutterEmailSender.send()
以void
结束,因此调用方没有可用的信息。