// 兼容多端APIuni.setStorageSync()uni.getStorageSync()
时间: 2024-09-03 19:01:29 浏览: 26
// 兼容多端API是指在UniApp框架中,`uni.setStorageSync()` 和 `uni.getStorageSync()` 是两个用于在本地存储中持久化数据的关键方法。这两个方法分别用于保存和读取数据到浏览器的localStorage或者微信小程序的storage,它们是跨平台的解决方案,能够在Web、微信小程序等不同环境之间共享数据。
`uni.setStorageSync(key, value)` 方法接收两个参数:
1. key: 存储的数据键名。
2. value: 要存储的数据值。
`uni.getStorageSync(key)` 方法则只接收一个参数:
1. key: 需要从存储中获取的数据键名。
使用这些API时,开发者可以方便地在用户离线状态下访问之前存储的数据,提高用户体验。然而,需要注意的是,由于安全性和隐私原因,不是所有数据都适合长期存储在本地。同时,对于敏感信息,建议使用云存储服务或其他加密手段保护数据。
相关问题
uni.setStorageSync和uni.getStorageSync区别
uni.setStorageSync和uni.getStorageSync都是uni-app中用于本地存储的API,它们的区别在于:
- uni.setStorageSync用于将数据存储到本地缓存中,可以通过key-value的形式进行存储,其中key为字符串类型,value可以是任意类型的数据。该方法是同步的,即在数据存储完成之前会一直阻塞线程。
- uni.getStorageSync用于从本地缓存中获取数据,需要传入一个key值,返回对应的value值。如果该key不存在,则返回null。该方法也是同步的。
改一下这段代码save() { let that = this; var userData = { nickName: that.nickName, //用户昵称 avatarUrl:that.imagePath, userId: uni.getStorageSync('userId'), gender: that.index, //性别 // phone:that.phone, } uni.uploadFile({ url: that.serverUrl + '/login/update', //仅为示例,非真实的接口地址 filePath:userData, name: userData, success: (uploadFileRes) => { console.log(uploadFileRes.data) let res = JSON.parse(uploadFileRes.data); let data = res.data; let response = JSON.parse(data.response); uni.setStorageSync('nickName', that.nickName); uni.setStorageSync('gender', that.index); uni.setStorageSync('avatarUrl', userData.imagePath); // uni.setStorageSync('phone', that.phone); uni.showToast({ title: '保存成功', icon: 'success', });
改动如下:
```
save() {
let that = this;
var userData = {
nickName: that.nickName, //用户昵称
avatarUrl: that.imagePath,
userId: uni.getStorageSync('userId'),
gender: that.index, //性别
// phone:that.phone,
}
uni.uploadFile({
url: that.serverUrl + '/login/update', //仅为示例,非真实的接口地址
filePath: that.imagePath, // 上传的文件路径
name: 'file', // 上传的文件名,自己定义,后端会用这个字段获取文件
formData: userData, // 上传的其他参数
success: (uploadFileRes) => {
console.log(uploadFileRes.data)
let res = JSON.parse(uploadFileRes.data);
let data = res.data;
let response = JSON.parse(data.response);
uni.setStorageSync('nickName', that.nickName);
uni.setStorageSync('gender', that.index);
uni.setStorageSync('avatarUrl', that.imagePath);
// uni.setStorageSync('phone', that.phone);
uni.showToast({
title: '保存成功',
icon: 'success',
});
}
});
}
```
主要改动如下:
1. `filePath` 参数应该是需要上传的文件路径,应该传入 `that.imagePath`,而不是 `userData`。
2. `name` 参数应该是上传的文件名,后端会用这个字段获取文件,改为字符串 `'file'`。
3. `formData` 参数应该是上传的其他参数,改为 `userData`。
4. 上传成功后,应该保存的是 `that.imagePath`,而不是 `userData.imagePath`。