我正在使用flutter的Urilauncher插件打开邮件客户端。这是我的代码
final Uri _emailLaunchUri = Uri(
scheme: 'mailto',
path: 'info@moops.in',
queryParameters: {'subject': 'Feedback for Moops'});
await launch(_emailLaunchUri.toString());然而,在电子邮件客户端。主题中的空格被"+“符号替换。我已经尝试用%20和0替换空格,但随后空格被替换为这些字符。有没有其他特殊的字符,我应该用来避免使用+符号,而用空格代替。或者是一种逃离太空的方法。
发布于 2020-08-09 15:57:50
你可以使用字符串来解决这个问题,我在下面写了一个小函数来解决这个问题:
String getUrl(String scheme, String path, Map<String, String> queryParameters) {
String url = '$scheme:$path?';
queryParameters.forEach((String k, String v){
url += '$k=$v&';
});
return url;
}然后你可以这样叫它:
await launch(getUrl('mailto', 'info@moops.in', {'subject': 'Feedback for Moops'}));发布于 2020-11-19 22:35:44
我找到了一个绕过这个问题的解决方案。
Uri _emailLaunchUri = Uri(
scheme: 'mailto',
path: 'example@example.com',
queryParameters: {
'subject': 'Example Subject & Symbols are allowed!'
}
});
launch(
_emailLaunchUri.toString().replaceAll("+", "%20")
);全部替换功能将所有+符号替换为代表空格的%20,这完美地解决了这个问题。
https://stackoverflow.com/questions/63323669
复制相似问题