uniapp 獲取用戶(hù)頭像 存起來(lái)
如果你想在 uni-app 中實(shí)現(xiàn)獲取用戶(hù)頭像并保存下來(lái),可以先在頁(yè)面中添加一個(gè)圖片組件,用于展示用戶(hù)的頭像。然后,給用戶(hù)選擇上傳頭像的按鈕綁定一個(gè)事件方法 onChooseAvatar,用于調(diào)用微信小程序的 API 實(shí)現(xiàn)獲取用戶(hù)上傳的頭像并展示:
<template> <view> <image mode="aspectFill" :src="avatarUrl" /> <button @tap="onChooseAvatar">選擇頭像</button> </view> </template> <script> export default { data() { return { avatarUrl: '', // 用戶(hù)頭像鏈接 } }, methods: { onChooseAvatar() { uni.chooseImage({ count: 1, // 用戶(hù)最多只能選擇一個(gè)文件(即頭像) success: (res) => { // 獲得選擇的本地文件路徑 let filePath = res.tempFilePaths[0] // 將文件轉(zhuǎn)為 base64 編碼的數(shù)據(jù) uni.getFileSystemManager().readFile({ filePath: filePath, encoding: 'base64', success: (result) => { // 將頭像的 base64 數(shù)據(jù)保存到本地緩存中 uni.setStorage({ key: 'avatarUrl', data: result.data, success: () => { // 將頭像的 https:// 開(kāi)頭的鏈接保存到 data 中,用于圖片組件展示 this.avatarUrl = 'data:image/png;base64,' + result.data } }) } }) } }) }, }, onLoad() { // 在 onLoad 鉤子函數(shù)中嘗試從本地緩存中獲取頭像信息 uni.getStorage({ key: 'avatarUrl', success(res) { // 如果緩存中有頭像信息,就將鏈接賦值給 data 中的 avatarUrl 字段,用于圖片展示 if (res.data) { this.avatarUrl = 'data:image/png;base64,' + res.data } } }) } } </script>
在代碼中,onChooseAvatar 方法用于調(diào)用 uni.chooseImage API 來(lái)讓用戶(hù)從相冊(cè)或拍照選擇上傳頭像圖片,并將文件轉(zhuǎn)為 base64 編碼。然后,再將頭像的 base64 數(shù)據(jù)通過(guò) uni.setStorage 方法保存到本地緩存中,這樣可以避免每次進(jìn)入頁(yè)面都要重新選擇頭像。最后,將頭像的 https:// 開(kāi)頭的鏈接賦值給 data 中的 avatarUrl 字段,用于圖片組件展示。在 onLoad 鉤子函數(shù)中,嘗試從本地緩存中獲取頭像信息,若緩存中有頭像信息,則在頁(yè)面加載時(shí)將頭像鏈接賦值給 data 中的 avatarUrl 字段,讓圖片組件展示用戶(hù)的頭像。
[聲明]原創(chuàng)不易,請(qǐng)轉(zhuǎn)發(fā)者備注下文章來(lái)源(hbsjsd.cn)【速建時(shí)代】。