1 首先创建getPhone的云函数
//getPhone/index.js
const cloud = require('wx-server-sdk')
// 初始化 cloud
cloud.init({
// API 调用都保持和云函数当前所在环境一致
env: cloud.DYNAMIC_CURRENT_ENV
})
exports.main = async (event, context) => {
const res=await cloud.getOpenData({
list:[event.cloudID]
})
return res
}
2 在Button上添加 open_type 和 ongetphonenumber 属性
<Button openType='getPhoneNumber' onGetPhoneNumber={this.getPhoneNumber} >点击获取手机号</Button>
3 调用云函数
getPhoneNumber = (e) => {
console.log('点击获取手机事件', e.detail.cloudID);
Taro.cloud.callFunction({
name: "getPhone",
data: {
cloudID: e.detail.cloudID
// weRunData
},
}).then(res => {
console.log(res);
console.log(res.result.list[0].data.phoneNumber);
this.setState({
context: res.result.list[0].data.phoneNumber
})
})
}
这样基本就大功告成了!
不过,用云开发时还有几个点需要注意一下
1.开发之前,需要在app.js中初始化配置
componentDidMount () {
if (process.env.TARO_ENV === 'weapp') {
Taro.cloud.init({
env: '云开发环境id',//可以在云开发后台拿到
traceUser:'true'//是否在将用户访问记录到用户管理中,在控制台中可见
})
}
}
2.不要忘记配置云函数的name //package.jsonpackage.json
3.云函数写好后要右击当前文件夹,选择创建并部署,这样就可以调用云函数了
4.注意云函数文件夹cloud/functions 后面有没有当前环境的字样,如果没有,云开发没有生效
5.当前云函数如果生效,在微信开发者工具里面当前文件夹是高亮的,下面有个小图标。