短信:链接字母参数解释为三星Galaxy S7上的数字

时间:2017-10-11 03:23:51

标签: javascript android html sms samsung-galaxy

我的网站上有一个链接,用于打开带有新消息的文本。以下链接适用于大多数Android手机:

sms:5555555555?body=JOIN

但是在Galaxy S7上,?body = JOIN参数被解释为电话号码本身的一部分,就像我们在键盘上输入的字母一样。因此,上面的例子会打开一条新邮件给电话号码:555555555526395646和一个空邮件正文。

我自己没有s7所以很难调试。还有什么想法我可以尝试让它在s7上按预期工作吗?

3 个答案:

答案 0 :(得分:2)

不同的平台方面它将以不同的方式工作。检查此link

上的挑战部分

对于iOS同样的问题在这里和android部分支持

答案 1 :(得分:1)

正如Rajesh所说,这对于不同的平台会有很大的不同,有时对于不同的版本。这是您将用于Android的结构:

<a href="sms:/* Phone Number */?body=/* Body of the message */">Link</a>

对于iOS:

<a href="sms:/* Phone Number */&body=/* Body of the message */">Link</a>

请记住,这些格式可以更改(在您的示例中,格式适用于大多数Android设备,但不适用于S7;在其他示例中,在iOS 7和iOS 8中发送SMS的格式不同)。此外,请注意,可以在Android上更改处理SMS URI的应用程序,并且制造商可以利用它(这可能是导致S7首先出现故障的原因)。因此,通过例外调整可能会有点麻烦。

否则,您可以考虑使用sms等现有软件包或Twilio等服务。

答案 2 :(得分:0)

虽然我无法重现此行为,但以下是RFC's处理sms:tel: URI方案的一些链接。

section 2.2RFC 5724 - URI Scheme for GSM Short Message Service下面是URI的正式定义,其中表示sms-recipient(您希望将短信发送到的电话号码) )必须等于RFC 3966中定义的telephone-subscriber

虽然您的URI似乎在大多数设备上都能正常工作(quirk?edge-case?),但您必须使用RFC中描述的格式交叉检查格式,以确保它符合标准。或者它可能是设备本身的软件/解析器错误! (虽然不确定......)