环境介绍
uni-app,vue,c#
文档:https://zh.uniapp.dcloud.io/
分包加载
- 为什么要分包加载
分包加载是小程序的加载速度手段
小程序的单个包不能超过2m - 启用分包加载
subPackages:下载app.json文件中
root:分包所在的目录
pages:分包包含的页面
"subPackages": [
{
"root": "pkg_building",
"pages": [
"detail/detail",
"list/list"
]
},
{
"root": "pkg_repair",
"pages": [
"detail/detail",
"list/list"
]
}
原文链接:https://blog.csdn.net/sinat_34896766/article/details/136213103
小程序用户登录
知识重点
uni.login(OBJECT)
是uni-app 框架的一部分,它可以编译到多个小程序平台,在微信小程序环境中,uni.login 实际上是调>用了底层的 wx.login API,但它提供了更统一的接口,使得在不同平台间切换时代码能保持一致性
常用参数
scopes:授权类型,默认 auth_base。支持 auth_base(静默授权)/ auth_user(主动授权) / auth_zhima(芝麻信用)
success:接口调用成功的回调
fail:接口调用失败的回调函数
后端
SKIT.FlurlHttpClient.Wechat.Api;微信官方api
步骤
- 通过uni.login成功获取用户的code信息
- 请求后端接口获取code
- 调用微信API换取access_token和openid:使用接收到的code
- 微信服务器会响应包含access_token、openid、以及可选的unionid等信息。后端需要解析这个响应,提取出这些关键信息。
- 使用openid作为用户唯一标识,可以在数据库中查找或创建用户记录。
- 最后,后端会返回一个登录成功的响应给前端
处理过程中要确保安全性,比如AppSecret不应暴露在前端,且敏感数据传输应加密。
前端获取用户code
//前端获取用户code
getCode: function (callback) {
let _this = this
uni.login({
// #ifdef MP-ALIPAY
scopes: 'auth_user',
// #endif
success: function (res) {
console.log(res);
if (res.code) {
return callback(res.code)
} else {
//login成功,但是没有取到code
_this.$refs.uToast.show({ title: '未取得code,请重试', type: 'error', })
}
},
fail: function (res) {
console.log(res);
_this.$refs.uToast.show({ title: '用户授权失败wx.login,请重试', type: 'error', })
}
})
},
请求微信api
在后端接口中通过微信api验证用户需要配置微信小程序的AppId,AppSecret,生成WechatApiClient对象
var WechatApiClient = new WechatApiClient(new WechatApiClientOptions()
{
AppId = _weChatOptions.WxOpenAppId,
AppSecret = _weChatOptions.WxOpenAppSecret
});
尝试从缓存中获取微信用户凭证accessToken
使用code以及accesToken创造一个用于微信请求的SnsJsCode2SessionRequest对象
执行ExecuteSnsJsCode2SessionAsync(request, HttpContext.RequestAborted)请求
可以用返回值中的OpenId做相关操作,将OpenId的值返回前端以作登录判断
条件编译指令
条件编译可以使一套代码,在不同平台下执行不同的部份。比如在APP内执行A,在小程序内执行B
#ifdef APP-PLUS
在APP平台下执行这部份
#endif
参考
值 | 生效条件 |
---|---|
APP-PLUS | App |
APP-PLUS-NVUE或APP-NVUE | App nvue |
H5 | H5 |
MP-WEIXIN | 微信小程序 |
MP-ALIPAY | 支付宝小程序 |
MP-BAIDU | |
MP-TOUTIAO | 字节跳动小程序 |
MP-LARK | 飞书小程序 |
MP-QQ | QQ小程序 |
MP-KUAISHOU | 快手小程序 |
MP-JD | 京东小程序 |
MP-360 | 360小程序 |
MP | 微信小程序/支付宝小程序/百度小程序/字节跳动小程序/飞书小程序/QQ小程序/360小程序 |
QUICKAPP-WEBVIEW | 快应用通用(包含联盟、华为) |
QUICKAPP-WEBVIEW-UNION | 快应用联盟 |
QUICKAPP-WEBVIEW-HUAWEI | 快应用华为 |