我的mailto链接中的换行符在Android手机上被破坏了

时间:2012-05-08 22:18:17

标签: javascript android mailto

我有一个网络应用程序,我正在尝试针对移动设备进行优化,而我的直接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应用程序打开,我会看到我的期望:

  

这不是很酷吗?

     

我发了一封电子邮件给你!

但如果我用Mail应用程序打开它,我就得到

  

这不是很酷吗?

就是这样。

如果不使用\ n我会使用%0A或%0D%0A或者如果我不使用encodeURIComponent(例如,消息只是字面意思是“Foo%0D%0ABar” - 我只是得到Foo)。

我无法弄清楚那个愚蠢的邮件客户端在做什么!有人有任何想法吗?

非常感谢!!!


刚刚意识到我的问题更严重 - 即使是编码和放大的邮件客户端也会截断任何内容。 (%26)所以我也不能嵌入一个URL,这是函数的重点。

有没有替代mailto来从Web应用程序打开邮件客户端?

1 个答案:

答案 0 :(得分:0)

根据我的经验,您在mailto:链接中使用\ n的成功将因邮件客户端而异。我发现效果最好的是使用%0d代替\ n,但即便如此,并非所有客户都会支持它。

如果格式化对您很重要,则mailto:链接不是您想要的。