Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Android手机上,我的mailto链接中的换行符断开了_Javascript_Android_Mailto - Fatal编程技术网

Javascript 在Android手机上,我的mailto链接中的换行符断开了

Javascript 在Android手机上,我的mailto链接中的换行符断开了,javascript,android,mailto,Javascript,Android,Mailto,我有一个web应用程序,我正在尝试为手机优化,而我的直截了当的mailto功能在我的Android手机的默认邮件客户端上无法运行。它可以在gmail客户端工作,但不能在本地客户端与Exchange电子邮件集成。(这似乎也适用于iPhone fwiw。)本地客户端的情况是,回车后的一切都被切断了。比如说,我有如下几点: sendLinkByEmail: function (subject, message, url) { var parsedMessage = en

我有一个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,这就是函数的全部要点


从web应用程序打开邮件客户端时,是否有mailto之外的其他方法?

根据我的经验,您在mailto:链接中的成功与否将因邮件客户端而异。我发现最有效的方法是使用%0d代替\n,但即使这样,也不是所有客户端都支持它


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

感谢您的回复(尽管事实令人失望!)如果格式没有显示在所有客户端上,我也不介意,但是在邮件末尾将其截断是不可接受的。因此,我必须删除所有客户端的格式,即使大多数客户端都可以很好地处理换行。该死。因此,如果mailto链接不是我想要的,我可以通过webapp(非本机)在手机上打开电子邮件客户端做什么?不幸的是,如果您的目标是打开本机邮件客户端,mailto:链接是您唯一的选择。否则,您可以使用自己的邮件实现发送内容,但显然用户将无法访问其本地通讯簿。可以说,这是实现的一个缺点。我想我被错误8023绊倒了。Grr。