- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序中有一个小链接,上面写着“给我们发电子邮件”。当您单击它时,我希望打开默认电子邮件应用程序,并开始向我们的电子邮件地址发送电子邮件。我曾经使用 url_launcher
包中的 launch()
方法来做到这一点,如下所示:
import 'package:url_launcher/url_launcher.dart' as url;
Future<bool?> pressedSendUsEmail() async {
bool? success;
try {
print('Pressed Send us an e-mail...');
success = await url.launch('mailto:our.email@gmail.com'); // Works like a charm...
print('success is $success');
} catch (e) {
print('Caught an error in Send us an e-mail!');
print('e is: ${e.toString()}');
}
return success;
}
但是现在,我收到一条警告,说 launch()
已被弃用!我应该改用 launchUrl()
。但是 launchUrl()
不带一个 String 参数,它带一个 Uri 参数......我不知道如何正确地写这个 Uri,所以它做我想要的!我试过:
success = await url.launchUrl(Uri(path: 'mailto:our.email@gmail.com'));
但这会引发错误,因为它无法解释“:”字符。我试过:
success = await url.launchUrl(
Uri.https('mailto:our.email@gmail.com', ''),
);
这会启动链接,但在浏览器中...它不会启动电子邮件到预先打印的地址。我尝试添加:
success = await url.launchUrl(
Uri.https('mailto:our.email@gmail.com', ''),
mode: url.LaunchMode.externalApplication,
);
这让我可以选择用哪个外部应用程序打开链接,但不幸的是,只列出了浏览器应用程序……没有列出电子邮件应用程序!
我应该如何编写我的命令来使 launchUrl()
完全按照旧的 launch()
做?非常感谢帮助!
编辑:
在下面那个问题得到满意的回答后,我现在有一个后续问题:
在应用程序的另一部分,有一个用户可以输入链接的地方,我曾经使用 launch()
来启动它...有没有简单的方法可以做到那,还有?
因为在那种情况下,我不知道链接是 http 还是 https 还是 mailto:!... 我宁愿不必编写大量代码来找出它!我只是想让它尝试完全按照编写的方式启动链接,只要编写正确,它就会工作。
最佳答案
试试这个:
void _sendEmail(){
String? encodeQueryParameters(Map<String, String> params) {
return params.entries.map((e) =>
'${Uri.encodeComponent(e.key)}=${Uri.encodeComponent(e.value)}')
.join('&');
}
final Uri emailLaunchUri = Uri(
scheme: 'mailto',
path: 'our.email@gmail.com',
query: encodeQueryParameters(<String, String>{
'subject': 'CallOut user Profile',
'body': widget.userModel?.username ?? ''
}),
);
launchUrl(emailLaunchUri);
}
关于flutter - 如何将新的 launchUrl() 方法与 "mailto:"链接一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72812591/
在我的网页中,我向 WCF 服务发出 Ajax 请求。如果服务抛出错误,则该错误将在 JSON 中传回。然后,JavaScript 错误处理程序会显示一个隐藏的 div,其中包含一个预先填充了我的详细
是否有办法阻止在 Chrome 中单击 mailto 链接时调用 onbeforeunload ?在 FF、Safari、IE 中运行良好。 google.load("j
是否可以将 mailto 放在另一个 mailto 的正文中? 我有 vb.net 代码,通过它我可以打开 Outlook 窗口。 我有以下代码, sMsg = User.Redirect("mail
我正在向我公司的不同用户发送电子邮件。我们的一些客户使用 Lotus Notes (8)。这些电子邮件由服务器生成。在这封电子邮件(HTML 格式)中,有一个指向“mailto”的链接: Please
我已经使用下面的代码让它正常工作了。所有 http url 在 webview 中打开,“tel:”链接在拨号程序中打开,“mailto:”链接在电子邮件客户端中打开。 但我的问题是如何将“mailt
我正在使用以下代码来允许我的 AngularJS 应用程序用户使用他们最喜欢的邮件客户端发送电子邮件,但是当我单击“发送”按钮时没有任何 react 。有人可以检查我的代码并告诉我我在这里缺少什么吗?
无论如何,我可以对空收件人使用“mailto”吗?我只想提供主题和邮件正文,然后用户可以在邮件上写入收件人地址。我尝试只写一个空格,但没有成功。 最佳答案 应该可以,我测试过。 mailto:?sub
我有一个带有“下订单”按钮的网站,其上方是产品列表和文本框,允许我为每种产品设置数量。 单击按钮后,它会发回并计算每种产品需要多少,然后我将其放入一个大字符串中,前面带有“mailto:order@b
我正在尝试在当前 html 页面之外的客户端生成一封电子邮件(更准确地说,是我的页面内名为“inc”的 div)。我陷入了第一步,我有以下代码: function emailCurrentPa
我目前设置了一个包含 5 个单选选项的表单。我有一个 switch 语句,具体取决于您选择的选项,并确定电子邮件的去向。 在我的交换机中,我有这段代码。 window.open("mailto:"+e
我已将商品添加到“购物车”中,该购物车只是 div 。当我添加它们时,我添加了 到最后让事情看起来整洁。完成后,用户可以点击链接和 div 的内容。已在链接中设置。当电子邮件打开时,所有项目都连接在一
是否有比 mailto 更好的替代方案?我们有一个 ASP.net 应用程序,用于填充用户默认电子邮件客户端的抄送字段。问题在于,当字符数超过 2000 时,URL 的字符限制会导致出现问题。 是否有
在我的网站上添加 mailto: 链接,但我想到用户可能没有设置客户端来处理它 我找到了this三年前的帖子,希望现在有一些可行的事情。我不一定需要弄清楚是什么在处理他们的 mailto 链接,而是需
我尝试发送一封带有附件的电子邮件,但它一直显示: Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException:
我有一个这样的网址:http://localhost:9001/view/shopindex/display?keyword=test&searchPostcode=Postcode我使用 HTML
我有一个 JavaScript 代码,可以生成正文中带有链接的电子邮件。 某些链接内有空格,因此链接会被切断。 我尝试用asacii代码替换空格,但没有成功。 var lineBreak = "%0D
有人可以透露一些信息吗? 我正在建立一个网站,顶部有一个小丝带来触发邮件。单击功能区时,我希望它弹起。问题是,mailto: 同时触发,并且由于电子邮件客户端窗口出现在网站上,因此错过了功能区的弹跳效
我必须对现有代码进行修改,而且我正在努力使用 mailto 函数。我希望当我提交我的表单时,预填充的邮件会打开 Outlook(或配置的任何其他邮件程序),以便用户可以检查是否一切正常,然后提交带有表
我正在使用 JavaScript mailto 函数,当单击该按钮时,邮件会加载到同一选项卡中。如何在新选项卡中加载邮件? 这是我的代码: function mailJob(code) {
我正在尝试从需要在移动设备上运行的网络应用程序(带有 ionic 框架的 angularjs)中使用 mailto,以便在点击时打开默认的电子邮件应用程序。 我的第一次尝试是使用 href="mail
我是一名优秀的程序员,十分优秀!