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()
					});
				}  
			},

  就完事啦

 

posted @ 2021-08-14 15:54  Brian_白  阅读(582)  评论(0编辑  收藏  举报