【发布时间】:2012-05-17 10:54:42
【问题描述】:
我有一个 Web 应用程序,我正在尝试针对移动设备进行优化,但我直接的 mailto 功能无法在我的 Android 手机上的默认邮件客户端上运行。它适用于 gmail 客户端,但不适用于与 Exchange 电子邮件集成的本机客户端。 (它似乎也适用于 iphone fwiw。)本机客户端中发生的情况是回车后的所有内容都被切断。所以说我有以下内容:
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,这是该功能的重点。
除了 mailto 之外,还有其他方法可以从 Web 应用程序打开邮件客户端吗?
【问题讨论】:
-
我想我被错误 8023 绊倒了。Grr。 code.google.com/p/android/issues/detail?id=8023
标签: javascript android mailto