首頁  >  文章  >  web前端  >  uniapp回傳圖片不顯示怎麼辦

uniapp回傳圖片不顯示怎麼辦

PHPz
PHPz原創
2023-04-23 09:13:431319瀏覽

最近在使用uniapp開發行動應用程式時,遇到了一個問題:傳回的圖片不顯示。今天在這裡,我將和大家分享我是如何解決這個問題的。

首先,我想簡單介紹一下uniapp。它是一款基於Vue.js框架的跨平台應用程式開發框架,可以使用HTML、CSS和JavaScript來建立iOS和Android應用程式。使用uniapp可以讓我們只編寫一次程式碼,即可在多個平台上運行,而不需要為每個平台單獨開發。

回到正題,當我在應用程式中打開相機或圖庫選擇照片時,圖片從相機或圖庫返回到應用程序,但是它並沒有在應用程式中顯示出來。我檢查了程式碼並沒有找到錯誤,因此我決定檢查圖片的路徑是否正確,因為如果圖片路徑不正確,圖片也無法顯示。

檢查圖片路徑時,我發現問題出在了圖片的位址上。在uniapp中,我們一般使用base64編碼來顯示圖片,而在我這個應用程式中,我沒有使用base64編碼,而是使用了圖片的真實路徑。這就是為什麼圖片無法正常顯示的原因。

要解決這個問題,我需要修改程式碼以使用base64編碼。在Vue.js中,我們可以使用btoa()方法將檔案轉換為base64編碼。以下是我修改後的程式碼:

getLocalImgUrl: function (file) {
  return new Promise((resolve) => {
    var reader = new FileReader();
    reader.onloadend = function () {
      resolve(reader.result);
    }
    reader.readAsDataURL(file);
  })
},

這個函數將檔案轉換為base64編碼,並將base64編碼的結果傳回為字串。在我選擇照片後,呼叫這個函數並將傳回的base64編碼儲存在Vue.js元件的data屬性中。以下是修改後的程式碼:

chooseImage: function () {
  var that = this;
  uni.chooseImage({
    count: 1,
    success: function (res) {
      that.getLocalImgUrl(res.tempFiles[0]).then((result) => {
        that.localImage = result; // 将base64编码的字符串存储在data属性中
      });
    }
  });
},

現在,當我選擇照片並返回應用程式時,圖片成功地顯示在了應用程式中。這個問題已經解決。

總結一下,uniapp是一款非常實用的跨平台應用開發框架。要成功開發應用程序,我們需要仔細檢查程式碼並確保圖片路徑正確、使用base64編碼等。希望我的經驗可以幫助那些遇到類似問題的開發者。

以上是uniapp回傳圖片不顯示怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn