sms:在三星 Galaxy S7 上带有被解释为数字的字母参数的链接

Posted

技术标签:

【中文标题】sms:在三星 Galaxy S7 上带有被解释为数字的字母参数的链接【英文标题】:sms: link with alphabetical parameters interpreted as numbers on Samsung Galaxy S7 【发布时间】:2018-03-22 14:23:39 【问题描述】:

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

sms:5555555555?body=JOIN

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

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

【问题讨论】:

您可以尝试安装 Android Studio 并模拟 S7 设备以在其中尝试您的网站。 我有一台 Galaxy S7,但无法重现此行为。还有更多信息吗? @BenP。无法重现?也许那么 OP 必须对他/她的网站有一些问题...... 尝试将jquerymobile.com 添加到您的项目中 【参考方案1】:

虽然我无法重现该行为,但这里有一些来自 RFC's 的链接,地址是 sms:tel: URI 方案。

RFC 5724 - URI Scheme for GSM Short Message Service的section 2.2下面是URI的正式定义,表示sms-recipient(你要发送短信的电话号码)必须等于@ 987654330@,在RFC 3966中定义。

尽管您的 URI 似乎在大多数设备上都能正常工作(怪癖?边缘情况?),但您必须与 RFC 中描述的格式进行交叉检查,以确保其符合标准。或者它可能是设备本身的软件/解析器错误! (虽然不确定……)

【讨论】:

【参考方案2】:

正如 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 故障的原因)。因此,使用异常进行调整可能有点麻烦。

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

【讨论】:

【参考方案3】:

在不同的平台上,它会以不同的方式工作。检查这个link的挑战部分

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

【讨论】:

以上是关于sms:在三星 Galaxy S7 上带有被解释为数字的字母参数的链接的主要内容,如果未能解决你的问题,请参考以下文章

最佳智能手机TOP4出炉,三星Galaxy S7 edge位居榜首

如何在三星galaxy s7上为React Native启用USB调试

Android 应用无法在三星 Galaxy 应用上提交(如何包含三星 SDK?)

Android Studio 无法识别三星 Galaxy S8

LocationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER) 在 Galaxy S7 上总是返回 NULL(仅限)

三星 Galaxy 手机在 Android Studio 上无法识别