Javascript 在Android手机上,我的mailto链接中的换行符断开了
我有一个web应用程序,我正在尝试为手机优化,而我的直截了当的mailto功能在我的Android手机的默认邮件客户端上无法运行。它可以在gmail客户端工作,但不能在本地客户端与Exchange电子邮件集成。(这似乎也适用于iPhone fwiw。)本地客户端的情况是,回车后的一切都被切断了。比如说,我有如下几点:Javascript 在Android手机上,我的mailto链接中的换行符断开了,javascript,android,mailto,Javascript,Android,Mailto,我有一个web应用程序,我正在尝试为手机优化,而我的直截了当的mailto功能在我的Android手机的默认邮件客户端上无法运行。它可以在gmail客户端工作,但不能在本地客户端与Exchange电子邮件集成。(这似乎也适用于iPhone fwiw。)本地客户端的情况是,回车后的一切都被切断了。比如说,我有如下几点: sendLinkByEmail: function (subject, message, url) { var parsedMessage = en
sendLinkByEmail: function (subject, message, url)
{
var parsedMessage = encodeURIComponent("Isn't this cool?\n I am sending you an email!");
var emailLink = "mailto:?Subject=" + encodeURIComponent(subject) + "&body=" + parsedMessage;
window.location = emailLink;
return false;
}
如果我选择使用Gmail应用程序打开,我会看到我所期望的:
这不是很酷吗
我给你发了一封电子邮件
但是如果我用邮件应用程序打开它,我就会
这不是很酷吗
就这样
如果使用%0A或%0D%0A而不是\n,或者不使用encodeURIComponent(例如,消息字面上是“Foo%0D%0ABar”--我只得到Foo),则会发生同样的情况
我搞不懂那个愚蠢的邮件客户端在干什么!有人知道吗
非常感谢
刚刚意识到我的问题更大——这个愚蠢的邮件客户端甚至在编码的&(%26)之后也会截断任何内容,所以我也不能嵌入URL,这就是函数的全部要点
从web应用程序打开邮件客户端时,是否有mailto之外的其他方法?根据我的经验,您在mailto:链接中的成功与否将因邮件客户端而异。我发现最有效的方法是使用%0d代替\n,但即使这样,也不是所有客户端都支持它
如果格式对您很重要,那么mailto:链接不是您想要的。感谢您的回复(尽管事实令人失望!)如果格式没有显示在所有客户端上,我也不介意,但是在邮件末尾将其截断是不可接受的。因此,我必须删除所有客户端的格式,即使大多数客户端都可以很好地处理换行。该死。因此,如果mailto链接不是我想要的,我可以通过webapp(非本机)在手机上打开电子邮件客户端做什么?不幸的是,如果您的目标是打开本机邮件客户端,mailto:链接是您唯一的选择。否则,您可以使用自己的邮件实现发送内容,但显然用户将无法访问其本地通讯簿。可以说,这是实现的一个缺点。我想我被错误8023绊倒了。Grr。