uni-app && 微信小程序启动云函数模式
首先定义一个云函数目录
const path = require('path')
const CopyWebpackPlugin = require('copy-webpack-plugin')
module.exports = {
// 配置路径别名
configureWebpack: {
devServer: {
// 调试时允许内网穿透,让外网的人访问到本地调试的H5页面
disableHostCheck: true
},
plugins: [
new CopyWebpackPlugin([
{
from: path.join(__dirname, 'cloudfunctions'),
to: path.join(__dirname, 'unpackage/dist', process.env.NODE_ENV === 'production' ? 'build' : 'dev', process.env.UNI_PLATFORM, 'cloudfunctions')
}
])
]
},
//productionSourceMap: false,
}
再然后需要配置copy-webpack-plugin,这个是为了生成云函数文件夹,且不被uni-app编译
新建云函数,如获取手机号,注意package 的name一定要和文件夹一样,否者会无反应,如果需要其他openapi,则需要新建一个config.json,具体看官网https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html#%E4%BA%91%E8%B0%83%E7%94%A8
然后就是云函数代码
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
var moblie = event.weRunData.data.phoneNumber
return {
moblie
}
}
注意,在app.js 或app.vue 一定要先init,否则找不到云开发,env,云环境,最好配置一下

获取手机号就简单了
decryptPhoneNumber(e){
let that = this
if(e.detail.errMsg=="getPhoneNumber:fail user deny"){
console.log('拒绝授权');
}else{ //允许授权
uni.showLoading({
title: '获取中..'
})
wx.cloud.callFunction({
name: 'getMobile',
data: {
weRunData: wx.cloud.CloudID(e.detail.cloudID),
}
}).then(res => {
that.form.phone = res.result.moblie
uni.hideLoading()
}).catch(err => {
console.error(err);
uni.hideLoading()
});
}
},
就完事啦

浙公网安备 33010602011771号