【问题标题】:SMS URL on AndroidAndroid 上的短信网址
【发布时间】:2011-06-14 20:18:43
【问题描述】:

我想知道 Android 是否具有与 iPhone 类似的功能,即您可以通过将 HREF 属性设置为您要发送消息的电话号码并添加前缀来使用 HTML A 标签发送短信用“短信:”,即href="SMS:02313213"

我环顾四周,似乎找不到任何表明它可以在 Android 上使用的东西。

【问题讨论】:

  • 你知道为什么 smsto: 没有电话号码就不能工作吗?

标签: android sms


【解决方案1】:

我发现以下内容可能对您有所帮助:

https://www.rfc-editor.org/rfc/rfc5724

您可以查看此 RFC 的第 2.5 或 2.6 小节,为您提供一些关于制定正确 SMS URL 的额外指示。

例如。使用 rfc5724 的 2.2 小节中详述的正式 URI 规范:

<a href="sms:+19725551212?body=hello%20there">SMS Me</a>  

请注意上例中“空格”的“转义”字符。

希望 Android 浏览器允许您基于此语法生成 XHTML 表单。我相信他们会的(如果我第二天有时间,我会在我的 Galaxy S 上试一试)。

【讨论】:

  • 也允许使用连字符,仅用于视觉辅助。
  • 我一直在实际的 SMS 消息中使用这种类型的 URL(意思是,向 SMS 收件人发送 sms:number?body=foo。目前(2020 年 9 月),Android 将电话号码转换为拨号-number 可点击链接,而 iOS 将整个内容转换为 message-this-number-including-body 可点击链接。因此,iOS 目前似乎比 Android 对 SMS-URL 更友好,至少在一个网络上下文。
  • 根据规范(rfc5724,第 2.2 小节)根据 RFC3966 - tools.ietf.org/html/rfc3966 定义的短信接收者。
【解决方案2】:

href="sms:+xxx" 适用于我的 HTC Desire Android 2.2 浏览器和 Sense SMS 应用程序,但 sms:+xxx?body= 不能 - 错误:收件人无效。我只是对设置身体真正感兴趣 - 有人见过/解决了这个问题吗?

我的测试页在这里:http://jsbin.com/itama4/15

【讨论】:

  • 我得到了同样的行为,我认为问题在于 sence 应用程序的工作方式。在我的手机上(2.3.7 HTC EVO [已删除 Sense UI]),它可以在 Messaging 应用程序中正常工作并打开,但是当使用具有 Sense UI 的手机时,它会出现错误,并且只能在没有正文内容的情况下工作。
  • 我现在有一个带有 CyanogenMod 9(默认 ICS SMS 应用程序)的 Galaxy S2,这对我有用 - 所以我同意你的观点 @Raymond。
  • 延迟响应(我深表歉意)- 可以说,标准(如 RFC)的采用通常在“实施者的眼中”。每个实施供应商选择他们希望如何解释规范或 RFC。这是互操作性测试会话的地方 - 例如。开放移动联盟(现为 OMA Specworks)已推广多年 (omaspecworks.org/about) 且最近才由基于 QUIC 的 IETF (ietf.org/blog/quic-automated-interop-testing) 推出的 IOP 测试节非常有用。
【解决方案3】:

应该可以的:

<a href="sms:+437722735932">contact</a>

【讨论】:

    【解决方案4】:

    我注意到,如果您使用带有 mms:&lt;phone_number&gt;?body=&lt;your message here.&gt; 文本的 qrc 代码,这似乎可以工作并避免错误:无效收件人

    这是一个测试qrc http://qrcode.kaywa.com/img.php?s=8&d=mms%3A555-555-5555%3Fbody%3DYour%20Message

    【讨论】:

    • “找不到可用的数据”....... - 也许这在几年前有效,但现在不起作用!
    【解决方案5】:

    如果需要多个收件人,这可行:

    安卓:

    sms:+15558675309,+15558675301?body=Text%20Here%20end!
    

    iOS、macOS:

    sms://open?addresses=+15558675309,+15558675301/&body=Text%20Here%20end!
    

    【讨论】:

    • 我从你的回答中得到了灵感。
    【解决方案6】:

    如果您想在 Android 和 IOS 中允许,以下技巧在这两种设备上都对我有用。

    不加号:

    sms:?&body<Your message goes here>
    

    【讨论】:

      【解决方案7】:

      如果您需要一个适用于 Android 和 iOS 的 URL,您可以这样做:

      sms:+123456789?&body=hello%20there
      

      【讨论】:

        【解决方案8】:

        您可以使用 CSS 技巧来显示其中一个: CSS media query to target only iOS devices

        @supports (-webkit-touch-callout:none) {
          /* CSS specific to iOS devices */ 
          .android { display:none }
          }
        
        @supports not (-webkit-touch-callout:none) {
          /* CSS for other than iOS devices */
          .ios { display:none }
          }
        
        <a class="ios" href="sms://+12345">SMS me</a>
        <a class="android" href="sms:+12345">SMS me</a>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-11-30
          • 1970-01-01
          • 2011-09-04
          • 1970-01-01
          • 2010-11-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多