由于想使用getPhoneNumber新接口获得手机号,尝试按文档进行了一番操作。文档不知道哪位神仙写的,也估计只有神仙能看懂,实践代码也没有。
搜了一下,网络上讲到用云函数实现的也都是些什么牛马问答,答非所问的多。更多的可能是以HTTP方式实现,但是既然小程序云函数有内置方法,那就尝试用内置方法来实现。
经过一番折腾还是成功了,这里把重点写一下。
- 小程序中wxml使用button组件获得手机号,要设置button标签的open-type属性和bindgetphonenumber属性,bind属性绑定到事件函数,这个官方文档里面有讲。
- 事件函数的event中,有个detail属性,里面有个code字段,是一个字符串。就是用这个code传给云函数得到手机号,这个文档里面也有讲。
- 新建一个云函数,配置好环境属性,并且在云函数目录下的config.json文件中,在permission中的openapi属性下,添加一个字符串“phonenumber.getPhoneNumber”
- 在小程序端调用云函数,将code字段以字符串格式放入data字段传过去
- 在云函数端,通过event得到code字符串
- 调用cloud.openapi.phonenumber.getPhoneNumber函数,传入的参数写成json格式,具体就是cloud.openapi.phonenumber.getPhoneNumber({code:你传进来的code字符串的值})
- cloud.openapi.phonenumber.getPhoneNumber函数返回一个对象,当中result下有个phoneInfo对象,里面的属性就是手机号。