微信小程序|云环境共享-使用指南

最近上线了我的第三款小程序,自从有了AI后,每天有使不完的牛劲儿...

由于第一款个人小程序50天重启人生已开通了云开发,并且每月资源有富余,所以决定共享云环境资源,独立开发,能省则省...

即使有官方文档,但在开发中还是遇到了挺多问题,接下来就给大家梳理一下环境共享具体如何使用,以及一些注意点。

为了叙述方便,下文中将第一款小程序,也就是资源方统称为A,第二款小程序,也就是调用方称为B。

1. 开通「环境共享」:

开通流程按照官方文档操作就可以,操作成功后,A中打开云开发控制台如下图所示:

2. 调用云函数:

这里需要注意!!!你要调用的云函数要放在A项目中!

因为我B项目一开始使用的是本地免费云开发,所以云函数都在B项目中,我以为B项目中的云函数只要部署后效果是一样的。但开启环境共享后,再调用云函数一直提示没有权限,需要先开通云开发。所以这里需要将云函数都放置在A项目中:

之后就是在B项目的页面中调用云函数(这部分官方文档有,但刚开始没太整明白...):

这里无需在app.js中初始化云函数了,直接在具体js中使用

3. 注意事项:
  1. 项目B中如果要获取用户openid,要用FROM_OPENID
js 复制代码
// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext();
  const { action, data } = event;
  // 获取用户openid
  const openid = wxContext.FROM_OPENID;
}
  1. 项目B中的image组件在环境共享中无法直接使用云储存中 cloud:// 协议的 fileID 加载图片:

解决方案: 在page下新增公共wxs文件,代码内容如下:

js 复制代码
// lib.wxs
module.exports = {
  getUrl: function (link) {
    if (link) {
    } else return "";
    if (link.substring(0, 5) == "cloud") {
    } else return link;
    var arr = link.split("/");
    arr[0] = "https:";
    arr[2] = arr[2].split(".")[1] + ".tcb.qcloud.la";
    return arr.join("/");
  },
};

页面中调用:

js 复制代码
<!-- pages/index/index.wxml -->
<wxs module="wxs" src="/pages/lib.wxs"></wxs>
<view>
   <image class="list-image" src="{{wxs.getUrl(item.image)}}" mode="aspectFill"></image>
</view>

完成以上配置与逻辑后,B项目就可以丝滑的共享云环境啦~。

最后,有任何小程序开发的问题,都欢迎评论区交流,也欢迎大家体验我的【理物收纳】小程序,一款简单易用的物品管理工具,让每一件物品都可视化,轻松记物,一目了然。

相关推荐
fanruitian13 小时前
uniapp android开发 测试板本与发行版本
前端·javascript·uni-app
rayufo13 小时前
【工具】列出指定文件夹下所有的目录和文件
开发语言·前端·python
RANCE_atttackkk13 小时前
[Java]实现使用邮箱找回密码的功能
java·开发语言·前端·spring boot·intellij-idea·idea
2501_9445255414 小时前
Flutter for OpenHarmony 个人理财管理App实战 - 支出分析页面
android·开发语言·前端·javascript·flutter
李白你好15 小时前
Burp Suite插件用于自动检测Web应用程序中的未授权访问漏洞
前端
攻城狮7号15 小时前
Kimi 发布并开源 K2.5 模型:开始在逻辑和干活上卷你了
人工智能·ai编程·视觉理解·kimi code·kimi k2.5·agent 集群
刘一说16 小时前
Vue 组件不必要的重新渲染问题解析:为什么子组件总在“无故”刷新?
前端·javascript·vue.js
徐同保17 小时前
React useRef 完全指南:在异步回调中访问最新的 props/state引言
前端·javascript·react.js
刘一说17 小时前
Vue 导航守卫未生效问题解析:为什么路由守卫不执行或逻辑失效?
前端·javascript·vue.js
一周七喜h18 小时前
在Vue3和TypeScripts中使用pinia
前端·javascript·vue.js