微信小程序生成小程序码缓存删除
.TS
const fsm = uni.getFileSystemManager()
/**
* 将 base64 转换为本地图片路径
* @param base64data base64 数据
*/
export const writeFile = (base64data: string) => new Promise((resolve) => {const FILE_BASE_NAME = Date.parse(new Date().toString())const result = /data:image\/(\w+);base64,(.*)/.exec(base64data)if (!result || result.length < 3) {resolve('')return}const [, format, bodyData] = resultconst filePath = `${wx.env.USER_DATA_PATH}/poster/${FILE_BASE_NAME}.${format}`const buffer = uni.base64ToArrayBuffer(bodyData)fsm.writeFile({filePath,data: buffer,encoding: 'binary',success() {resolve(filePath)},fail() {resolve('')},})
})
export const readFile = (base64data: string) => new Promise((resolve) => {fsm.access({path: `${wx.env.USER_DATA_PATH}/poster`,success() {writeFile(base64data).then((filePath) => {resolve(filePath)})},fail() {fsm.mkdir({dirPath: `${wx.env.USER_DATA_PATH}/poster`,success() {readFile(base64data).then((res) => {resolve(res)})},})},})
})
/*** 删除目录*/
export const delFile = () => new Promise((resolve) => {fsm.rmdir({dirPath: `${wx.env.USER_DATA_PATH}/poster`,recursive: true,success() {resolve(true)},})
})
.JS
//引入TS方法
import { readFile, delFile } from '@/static/utils/poster'//这是删除防止内存超出
delFile().then(() => {console.log('删除成功')
})// 获取小程序码接口
export const getQrCode = async (path:string) => {const res = await http.get('接口地址', {header: { 'content-type': 'application/x-www-form-urlencoded' },responseType: 'arraybuffer',params: { path },})return res.data
}//获取小程序码
const rect = await getQrCode(path)
//转成本地图片路径
readFile(`data:image/jpeg;base64,${uni.arrayBufferToBase64(rect)}`).then((res) => {console.log('路径',res)
})
遇到问题可以看我主页加我Q,很少看博客,对你有帮助别忘记点赞收藏。