找了许多文档发现并没有人说如何在uniapp中开发微信小程序 共享云函数的操作,琢磨两天记录一下。
第一步,
此时在被分享的资源空间中发现已经共享
然后需要在分享环境的小程序的云函数中添加一个 cloudbase_auth (这个需要鉴权,当被分享房获取环境时会首先调用这个,记住一定要写,否则会报错)
const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 云函数入口函数 exports.main = async (event, context) => { const wxContext = cloud.getWXContext() console.log(event) console.log(wxContext) // 跨账号调用时,由此拿到来源方小程序/公众号 AppID console.log(wxContext.FROM_APPID) // 跨账号调用时,由此拿到来源方小程序/公众号的用户 OpenID console.log(wxContext.FROM_OPENID) // 跨账号调用、且满足 unionid 获取条件时,由此拿到同主体下的用户 UnionID console.log(wxContext.FROM_UNIONID) return { errCode: 0, errMsg: '', auth: JSON.stringify({ // 自定义安全规则 // 在前端访问资源方数据库、云函数等资源时,资源方可以通过 // 安全规则的 `auth.custom` 字段获取此对象的内容做校验, // 像这个示例就是资源方可以在安全规则中通过 `auth.custom.x` 获取 x: 1, }), } }
此时初始化已经全部完成,那么现在需要再被分享的小程序中输入
var c1 = new wx.cloud.Cloud({ resourceAppid: 'wxea87', //分享的appid resourceEnv: 're3e', //分享的环境名 traceUser: true, }); await c1.init(); await一定要写。否则报错 var hc = wx.getStorageSync('loginStorage'); let dataInfo = hc; if(dataInfo==""){ uni.reLaunch({ url:"/pages/myMain/login/index" }) }else{ uni.reLaunch({ url:"/pages/myMain/article/index" }) }
此时
查询操作 await c1.database().collection('articleImages') 访问云函数 await c1.callfunction({ name:"", data:{ } })
结束