收藏
回答

小程序中怎么调用原生短信功能来让用户发短信

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 需求 暂无 客户端 6.6.7 2.0.0

- 需求的场景描述(希望解决的问题)

现在有个这样的需求,业务中需要吊起用户对某个电话的发送短信功能,但是我看了小程序组件,并没有这种调用原生短信的api,我就想到了用web-view嵌入网页 再通过网页调用短信功能。

代码片段如下


这是我在web-view中嵌入的页面代码。可以通过'sms:xxxxxxx'这种方法 让浏览器调用起来短信功能,这是之前发现可以使用的,图中是可以吊起往10086发送哈哈的短信页面。这样问题就来了。

在web-view中是要在官方配一个域名的这个域名是用来嵌入web-view页面的,必须是https协议,这个我把这个简单的页面放到服务器上,确实可以使用,调用这句代码的时候ios会提示一个东西,点击确认就可以调用起来短信功能,但是安卓就会报错sms://不是在业务域名下,就出错,但是ios是可以的。具体截图如下


由于内容不方便暴露,就打了马赛克,但是确实是可以调用的,在安卓下面就会显示错误

- 希望提供的能力

希望安卓也兼容这种功能,或者是在api中添加调用原生的短信功能。确实有这方面需求


回答关注问题邀请回答
收藏

2 个回答

  • 女娲的小泥人
    女娲的小泥人
    2018-06-04

    emmmm。这其实是微信的BUG。

    但是这个Bug不是指安卓下不能调用sms 协议。

    而是因为IOS的 webview 问题而无法屏蔽掉系统支持的 sms 协议。

    2018-06-04
    有用 1
    回复 2
    • 老太头
      老太头
      2018-06-04

      这个需求有办法解决吗 这个路子 或者其他路子

      2018-06-04
      回复
    • 女娲的小泥人
      女娲的小泥人
      2018-06-04

      我没尝试过,如果web-view 能和小程序进行交互倒是可以调用小程序的 makeCallPhone

      2018-06-04
      1
      回复
  • 季夫子
    季夫子
    2019-04-17

    20190417在红米中测试,使用体验版的包,配置webview,已经能够正常跳转发送短信页面了


    <a href="sms:18768116704&body=短信内容">发送iOS短信</a>

    <a href="sms:18768116704?body=短信内容">发送andorid短信</a>


    2019-04-17
    有用
    回复 4
    • 我在机场等一艘船
      我在机场等一艘船
      2020-07-14
      你好,请问如何在代码这边实现判断用户手机型号,是直接写这两条吗?
      2020-07-14
      回复
    • 我在机场等一艘船
      我在机场等一艘船
      2020-07-14
      在安卓手机可以实现发送短信的功能,但是ios调用发送短信显示为空<web-view src="sms:{{Tel}}?body={{content}}" bindmessage="bindgoback"></web-view>
      2020-07-14
      回复
    • 季夫子
      季夫子
      2020-11-03回复我在机场等一艘船
      ios的body是用&符号拼接的,“小程序跳转短信发送页面,并自动填写内容”,会导致出现一个“乱码弹窗”(encode码),所以最后我们是帮用户把数据复制到剪切板上,给予提示,跳转短信发送页后用户自行黏贴
      2020-11-03
      回复
    • 季夫子
      季夫子
      2020-11-03回复我在机场等一艘船
      印象中是小程序api或者UA判断
      2020-11-03
      回复
登录 后发表内容