我的网站上有一个链接,可以打开带有新消息的文本。以下链接适用于大多数 Android 手机:
sms:5555555555?body=JOIN
但在 Galaxy S7 上,?body=JOIN 参数被解释为电话号码本身的一部分,就像我们在键盘上输入的字母一样。因此,上面的示例将向电话号码打开一条新消息:555555555526395646
和一个空的消息正文。
我自己没有s7,所以很难调试。有什么想法我可以尝试使其在 s7 上按预期工作吗?
我的网站上有一个链接,可以打开带有新消息的文本。以下链接适用于大多数 Android 手机:
sms:5555555555?body=JOIN
但在 Galaxy S7 上,?body=JOIN 参数被解释为电话号码本身的一部分,就像我们在键盘上输入的字母一样。因此,上面的示例将向电话号码打开一条新消息:555555555526395646
和一个空的消息正文。
我自己没有s7,所以很难调试。有什么想法我可以尝试使其在 s7 上按预期工作吗?
不同的平台,它会以不同的方式工作。检查此链接上的挑战部分
对于 iOS 相同的问题,对于 android,它的部分支持
正如 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 的格式不同)。另外,请注意,处理 SMS URI 的应用程序可以在 Android 上更改,制造商会利用它(这可能是首先导致 S7 故障的原因)。因此,使用异常进行调整可能有点麻烦。
虽然我无法重现该行为,但这里有一些来自RFC寻址sms:
和tel:
URI 方案的链接。
根据RFC 5724 - URI Scheme for GSM Short Message Service的第 2.2 节是URI的正式定义,它表示(您要发送短信的电话号码)必须与RFC 3966中定义的相同。sms-recipient
telephone-subscriber
虽然,您的 URI 似乎在大多数设备上都能正常工作(怪癖?边缘情况?),但您必须与 RFC 中描述的格式进行交叉检查,以确保其符合标准。或者它可能是设备本身的软件/解析器错误!(虽然不确定……)