
wx.getUserProfile:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserProfile.html

wx.getUserInfo:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserInfo.html

UserInfo:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/UserInfo.html

获取微信头像昵称:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/userProfile.html
小程序用户头像昵称获取规则调整公告:
https://developers.weixin.qq.com/community/develop/doc/00022c683e8a80b29bed2142b56c01
1、my.wxml
<!-- user-info-card.wxml -->
<view class="user-info-card">
<view class="avatar-placeholder">
<button class="avatar-wrapper" open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar">
<image class="avatar" src="{{avatarUrl}}"></image>
</button>
</view>
<view class="info-container">
<view class="info-rows">
<view class="info-row-input">
<text class="label">昵称 :</text>
<input type="nickname" class="weui-input" placeholder="请输入昵称" bindinput="handleNicknameInput" value="{{nickname}}"/>
</view>
<view class="info-row">
<text class="label">手机 :</text>
<text class="value">{{userInfo.phoneNumber}}</text>
</view>
</view>
</view>
</view>
2、my.js
// my.js
const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'
const avatarKey = 'userAvatar'; // 缓存头像的 key
const nicknameKey = 'userNickname'; // 缓存昵称的 key
Page({
data: {
avatarUrl: defaultAvatarUrl,
nickname: ''
},
onChooseAvatar(e) {
const avatarKey = 'userAvatar'; // 缓存头像的 key
console.log('选择头像事件:', e);
const { avatarUrl } = e.detail
console.log('avatarUrl: ', avatarUrl);
this.setData({
avatarUrl,
})
console.log('setStorageSync调用');
// 存储头像信息到本地缓存
wx.setStorageSync(avatarKey, avatarUrl);
console.log("存储头像成功")
},
handleNicknameInput: function (e) {
const nicknameKey = 'userNickname';
const {value} = e.detail;
console.log("输入昵称事件", value);
this.setData({
nickname: value
});
wx.setStorageSync(nicknameKey, value);
console.log("存储昵称成功")
},
onLoad() {
const avatarKey = 'userAvatar'; // 缓存的key
const nicknameKey = 'userNickname';
// 读取缓存的头像信息
const cachedAvatar = wx.getStorageSync(avatarKey);
console.log('读取缓存: ', cachedAvatar);
if (cachedAvatar) {
this.setData({
avatarUrl: cachedAvatar
});
}
// 读取缓存的昵称信息
const cachedNickname = wx.getStorageSync(nicknameKey);
console.log("读取缓存昵称", cachedNickname)
if (cachedNickname) {
this.setData({
nickname: cachedNickname
})
}
wx.getStorageInfo({
success(res) {
console.log("当前存储信息:", res);
console.log("当前使用的大小:", res.currentSize, "KB");
console.log("最大可用存储大小:", res.limitSize, "KB");
}
});
},
});
3、wx.getStorageInfo
wx.getStorageInfo({
success(res) {
console.log("当前存储信息:", res);
console.log("当前使用的大小:", res.currentSize, "KB");
console.log("最大可用存储大小:", res.limitSize, "KB");
}
});


4、微信小程序的本地存储能存储多久?
好的,你问到了一个关于微信小程序 Storage (本地存储) 的重要问题:微信小程序的本地存储能存储多久?
微信小程序 Storage 的存储时长:
微信小程序的本地存储 (通过 wx.setStorageSync 和 wx.setStorage 存储的数据) 没有明确的过期时间。这意味着,只要用户不主动清理缓存,或者小程序没有被卸载,那么存储在本地的数据通常会一直存在。
需要注意的几点:
- 用户主动清理缓存: 用户可以在微信设置中主动清除小程序缓存,这会导致所有使用
wx.setStorageSync或wx.setStorage存储的数据丢失。 - 小程序卸载: 如果用户卸载了小程序,那么所有本地存储的数据都会被清除。
- 微信客户端更新: 微信客户端更新通常不会清除小程序缓存,但有些版本的微信客户端更新可能会导致缓存数据丢失,这属于极少数情况。
- 缓存大小限制:
- 微信小程序本地缓存有大小限制,目前默认是 10MB。
- 如果你的存储数据超过了这个限制,新的存储操作可能会失败,或者覆盖旧的数据。
- 你需要关注本地缓存的使用情况, 并且及时清理不必要的数据。
wx.setStorage异步存储: 你可以使用wx.setStorage进行异步存储, 和wx.setStorageSync最大的区别是wx.setStorage是异步的,wx.setStorageSync是同步的, 如果对异步没有特别的需求,建议使用wx.setStorageSync。wx.removeStorage和wx.clearStorage: 小程序提供wx.removeStorage用于移除特定的存储数据,wx.clearStorage用于移除所有的本地存储。
建议:
- 不要存储大量数据: 尽量不要在本地存储中存储大量数据,例如图片、视频等,这些数据应该使用微信提供的其他存储方式 (例如云存储) 或服务器存储。
- 存储轻量级数据: 本地存储更适合存储一些轻量级的数据,例如用户设置、用户授权信息、token 等。
- 定期检查和清理: 你可以定期检查本地存储的使用情况,并及时清理过期或无用的数据。
- 不要依赖永久存储: 尽管微信小程序的本地存储理论上可以永久存储数据,但你不应该完全依赖它, 你需要在必要的时候从后端同步数据。
- 处理异常情况: 在读取本地存储数据时,需要处理
wx.getStorageSync返回null的情况,可以使用默认值, 或者从服务器获取。
总结:
- 微信小程序本地存储没有明确的过期时间,只要用户不主动清理或者卸载小程序,数据理论上会一直存在。
- 你必须考虑用户可能清理缓存, 或者小程序可能卸载的情况, 做好异常处理。
- 本地存储适合存储少量轻量级数据,不要存储大量数据。
- 你可以使用
wx.removeStorage和wx.clearStorageAPI 手动清除缓存。

155

被折叠的 条评论
为什么被折叠?



