在我的Windows 8商店应用中,我在页面上有一个发送电子邮件按钮,用户可以点击它并向我们发送电子邮件以进行一般性查询。
我需要在电子邮件正文中预加载一些文字,但我似乎无法为其添加换行符。我尝试了Environment.NewLine
和"\r\n"
。它们都不起作用。
var mailto = new Uri("mailto:?to=james.jones@example.com&subject=Hello world&body=Hi," + Environment.NewLine + "Can you please ...");
await Windows.System.Launcher.LaunchUriAsync(mailto);
当我跑步时,我得到了#34;嗨,你能不能......"。换行符被省略。
答案 0 :(得分:8)
尝试使用"%0d%0a"
作为换行符,如
"Hi,%0d%0aCan you please..."
这是一个URL编码的ASCII CR / LF序列。这适用于内置邮件应用程序,但您没有任何特别保证它适用于用户可能在将来安装的任意邮件应用程序。
答案 1 :(得分:5)
它不起作用的原因是因为你正在发布一个Uri,Uris要求它们的内容是UrlEncoded / UrlEncodable。在Environment.Newline等的情况下,你会得到一个无效的Uri。
你可以通过UrlEncoding the Environment Newline来解决这个问题:
System.Net.WebUtility.UrlEncode(Environment.NewLine)
答案 2 :(得分:0)
您可能应该考虑使用Share Contract将您的内容分享到您的邮件应用程序。好处:使用您软件的用户可以将其共享给其他应用程序,而不仅仅是电子邮件。