首先,在页面里写个获取手机号的专用button,(这是小程序官网规定的)
<button class="btn-sure" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">点击获取手机号</button>
- 而后在该页面同目录的js文件写对应办法:
getPhoneNumber(e) { let self = this; wx.cloud.callFunction({ name: 'getMobileNumber', data: { code: e.detail.code, // 根底库最低2.21.2,否则获取不到 } }).then(res => { self.setData({ userPhoneNumber: res.result.phoneInfo.phoneNumber }) }) },
- 在cloudfunctions文件夹上右键新建云函数getMobileNumber,如下图
其中,config.json的内容如下:
{ "permissions": { "openapi": [ "templateMessage.send" ] }}
index.js的内容如下:
const cloud = require('wx-server-sdk')// cloud.init() cloud.init({ env: '云函数的环境id' // 传不传都行,app.js里曾经配置过了的})exports.main = async (event, context) => { const phoneResult = await cloud.openapi.phonenumber.getPhoneNumber({code:event.code}) return phoneResult}
package.json的内容是生成的,大抵如下:
{ "name": "getMobileNumber", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "wx-server-sdk": "~2.6.1" }}
app.js的配置如下:
App({ onLaunch: function () { if (!wx.cloud) { console.error('请应用 2.2.3 或以上的根底库以应用云能力'); } else { wx.cloud.init({ env: "云函数的环境id", traceUser: true, }); } }})