Flutter web:url_launcher_web未在浏览器中启动电子邮件



我为我的flutter web应用程序添加了通过电子邮件发送反馈的功能。这是我的代码:

static void launchEmail(String subjectLine) async {
const emailId = Constants.ARUDITO_EMAIL;
print('opening email app for uploading content');
String url = "mailto:$emailId?subject=$subjectLine";
if (kIsWeb) {
if (await webLauncher.UrlLauncherPlugin().canLaunch(url)) {
await webLauncher.UrlLauncherPlugin().launch(
url,
useWebView: true,
enableDomStorage: true,
enableJavaScript: true,
useSafariVC: true,
webOnlyWindowName: 'Arudito',
headers: null,
universalLinksOnly: false,
);
} else {
throw 'Could not open an email app';
}
} else {
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'Could not open an email app';
}
}
}

pubspec.yaml包括:

dependencies:
flutter:
sdk: flutter
url_launcher: ^5.4.2
url_launcher_web: ^0.1.3+1

此代码不会在web浏览器中启动电子邮件。它只打开一个新的选项卡。但是,它是在Windows中选择邮件应用程序时启动的。有人能告诉我这里出了什么问题吗?

我遇到了完全相同的问题。我在另一篇StackOverflow帖子中找到了一个有用的答案。

这里提到,如果您只是省略canLaunch检查,而是将launch包装在try-catch块中,那么它在Flutter Web上就可以工作。我刚试过,效果很好。

顺便说一句,url_launcher包中还有一个全新的Link小部件,它可以创建适当的web链接(包括右键单击支持(。

我遇到了确切的问题。点击任何电子邮件链接都会打开一个新的空白标签。就这样。

我花了几个小时才弄明白。

在mac上打开Mail应用程序,设置,常规,然后有一个默认电子邮件阅读器的选项。它选择了铬。把它改成一个真正的电子邮件客户端,现在就可以像预期的那样工作了。

相关内容

  • 没有找到相关文章

最新更新