安卓短信链接如何传递参数

5

我有一个网页上的短信链接:

<a href="sms:+15553332222?body=message">SMS Link</a>

在我的Nexus上(运行原生姜饼系统)这很好用,但其他两个手机(都是运行带有Sense用户界面的姜饼系统的HTC手机)无法打开链接,显示“无效的收件人”。如果我在链接中删除body参数,则可以正常工作,但我需要body参数。我尝试了不同格式的号码,包括+15553332222155533322225553332222+1-555-333-2222555-333-2222。我还尝试使用sms:smsto:mms:,但结果相同。
我做错了吗?这是HTC手机已知的问题吗?如果是,有没有解决方法?

一些代码和一些Logcat错误会很有帮助。 - Anurag Ramdasan
你能粘贴一下你的短信相关代码吗? - Shankar Agarwal
1
你要找的是什么代码?只是HTML链接而已。 - Scott
问题是否确实出现在您问题中提供的确切链接上,即没有任何空格/其他特殊字符的单词正文?如果仅在较长的正文(例如句子)中出现此问题,则可能未正确对“body”参数的值进行URL编码。 - Philipp Reichart
我使用我的HTC Desire HD,使用Android 2.3.5进行了检查,确实如您所描述的那样失败了(仅使用ASCII,没有空格)。在我的HTC One X上使用Android 4.0.3,它可以正常工作,因此HTC可能已经在他们的消息应用程序中修复了一些问题。(这种行为也在这里提到:https://dev59.com/Vm445IYBdhLWcg3wl7XW#5692400但没有解决方法) - Patrick
是的,链接写错了,没有空格或特殊字符。在我的运行2.3.7版本的Nexus上可以工作,所以我猜测这可能是旧版Sense或旧版Android的问题。有人知道解决方法吗? - Scott
2个回答

2

尝试

<a href="sms://+35555&body=Helloworld">

使用“://”

它修复了Nexus 6P的链接,但破坏了其他我的Android设备的链接。你知道哪些设备需要“//”吗? - Stanislav Mayorov

0

我也遇到了同样的问题,但已经接近解决。

使用

<a href="sms:+351234567;body=hello%20world">One number with body text sep ;</a>

可以正确设置msisdn,但是会出现错误“无效的收件人:<body=hello world>

Android 4.0.3

HTC Sence 3.6


我不确定这是否更接近了,它显然获取了一些数据,但并非正确的数据。 - Scott

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接