首先,在页面里写个获取手机号的专用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,
});
}
}
})
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。