常見(jiàn)問(wèn)題

uniapp 獲取用戶(hù)頭像 存起來(lái)

常見(jiàn)問(wèn)題

2530

字體:

如果你想在 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í)代】。