【问题标题】:Flutter-web:url_launcher_web not launching email in browserFlutter-web:url_launcher_web 未在浏览器中启动电子邮件
【发布时间】:2020-12-25 04:21:25
【问题描述】:

我为我的 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

此代码未在网络浏览器中启动电子邮件。它只会打开一个新标签。但是,它是在 Windows 中选择邮件应用程序时启动的。有人可以告诉这里是什么问题吗?

【问题讨论】:

    标签: flutter url flutter-dependencies flutter-web


    【解决方案1】:

    我遇到了完全相同的问题。我在另一个 StackOverflow 帖子中找到了 useful answer

    这里提到如果你只是省略 canLaunch 检查,而是将 launch 包装在一个 try-catch 块中,它可以在 Flutter Web 上运行。我刚试过,效果很好。

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

    【讨论】:

      猜你喜欢
      • 2014-12-11
      • 1970-01-01
      • 2016-09-17
      • 1970-01-01
      • 2013-12-22
      • 2013-11-11
      • 2018-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多