在H5页面中使用a:sms发送短信:

<a href='sms:123?body=jay+chou'>Send</a>
// iOS 使用 <a href='sms:123&body=jay+chou'>Send</a>

iOS上可以正常运行,然是到Android上就出现了问题,消息内容中的“+”会成为空格
Android发送短信界面

然后就想是不是需要现encode一下?然后就改为下面这种方式:

<a href='sms:123?body=jay%2Bchou'>Send</a>

结果还是不行,然后发现不管是%2B或者%20都会转变为空格(这就很神奇),在查阅很多资料无果的情况下转身去 StactkOverflow 上提了个问题,很快啊,就有一位大佬回答了我的问题,说是需要将body中的“+”进行两次encode,也就是说将%2B换为%252B,就像这样:

<a href='sms:123?body=jay%252Bchou'>Send</a>

然后。。。成功了

在我追问大佬问什么会这样时,他回答说在解码时,解码执行了两次,他也不明白为什么要这样。

最后附上StactkOverflow上相应问答的链接


Alen
33 声望4 粉丝