微搭:微信小程序的开发与扩展能力解析

2024-06-23
来源:网络整理

微信小程序

微信小程序(以下简称小程序)是微大支持的一等公民,在微大开发的应用可以直接发布为微信小程序,微大的大部分能力都可以在小程序中使用,小程序的大部分原生API也可以在微大中使用。

扩展微信原生功能的使用

封装提供了很多小程序能力,比如大部分组件和API都可以在小程序和WEB中正常使用。对于没有封装的小程序能力,在中也可以正常使用。比如当我们想在小程序中直接获取用户的收货地址时,在事件中直接调用wx.即可:

//

export default async function ({ event, data }) {
const res = await wx.chooseAddress();
console.log(res);
// 使用收货地址逻辑
}

我们还可以直接调用微信云开发的能力,例如在前端代码中,我们可以直接调用微信云开发的云函数:

//

export default async function ({ event, data }) {
const r = await wx.cloud.callFunction({
name: "myFunction",
});

console.log(res);
}

在使用微信云开发能力时,请注意,若小程序账号与腾讯云账号未绑定,微信云开发与微达中的资源将完全独立,无法通过微信云开发使用微达中的资源。

限制:

/

获取和是小程序场景中常见的使用场景,小程序中获取/的方法如下:

应用前端可以直接获取用户信息,小程序登录会包含

微信小程序云开发案例_微信小程序云开发与传统开发_微信小程序云开发项目

目前并未提供获取数据的封装,但开发者依然可以通过小程序原有的方式获取数据,例如最简单的方式是在微信云开发环境中创建一个云函数,在云函数中调用.()即可获取信息。

例如首先在小程序云开发环境中创建一个新的云函数:

/

const cloud = require("wx-server-sdk");

cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,
});

exports.main = async (event, context) => {
const wxContext = cloud.getWXContext();

return {
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
};
};

然后在微应用前端调用云函数:

//

export default async function ({ event, data }) {
const r = await wx.cloud.callFunction({
name: "getMPUserInfo",
});

console.log(res);
}

若不一致,需要独立初始化小程序云开发:

wx.cloud.init({
env: "xxxx", // 调用小程序云开发前初始化
});

页面路径

原生小程序中的分享、转发、跳转等API需要提供页面的绝对路径,在系统中,可以按照以下规则获取绝对路径:

主包页面路径为://${page.id}/

子包页面路径为://${}/${page.id}/,其中 为子包ID,可在子包列表和详情中获取。

封装尺寸小

微信小程序目前对小程序主包大小有一定的限制,如果超过2M,小程序就无法正常上传发布。当小程序包超过限制无法发布时,可以考虑对小程序进行分包,删除代码。在微信中,有以下几种方法可以解决小程序主包超限导致应用无法发布的问题:

分享