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


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

sms:5555555555?body=JOIN

但是在Galaxy S7上,?body = JOIN参数被解释为电话号码本身的一部分,就像我们在键盘上输入的字母一样。所以上面的例子,会打开一个新的电话号码消息: 555555555526395646 和一个空的消息体。

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


12
2017-10-11 03:23


起源


您可以尝试安装Android Studio并模拟S7设备以在其中试用您的站点。 - Tiramonium
我有一个Galaxy S7,我无法重现这种行为。更多信息? - Ben P.
@BenP。不能重现?也许OP必须对他/她的网站有一些问题...... - riyaz-ali
尝试添加 jquerymobile.com 到你的项目 - Ali Sheikhpour


答案:


不同的平台方面它将以不同的方式工检查挑战部分 链接

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


2
2017-10-11 04:17





正如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首先出现故障的原因)。所以通过例外调整可能有点笨拙。

否则,您可以考虑使用现有的包 短信 或像这样的服务 Twilio


1
2017-10-19 09:06





虽然我无法重现这种行为,但这里有一些链接 RFC的 解决 sms: 和 tel: URI方案。

第2.2节 的 RFC 5724 - GSM短消息服务的URI方案 是个 正式定义 的URI,表示 sms-recipient (要将短信发送到的电话号码)必须等于 telephone-subscriber 在...中定义 RFC 3966

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


0
2017-10-25 13:38