Rumah > hujung hadapan web > uni-app > teks badan

Bagaimana untuk menyelesaikan masalah bahawa gambar album yang dipilih tidak dipaparkan dalam projek uniapp

PHPz
Lepaskan: 2023-04-06 14:26:48
asal
3579 orang telah melayarinya

Dalam proses membangunkan dengan Uniapp, kita sering perlu menggunakan fungsi memilih gambar album Namun, kadangkala kita menghadapi masalah bahawa gambar tidak dipaparkan selepas pemilihan. Dalam artikel ini, saya akan menerangkan mengapa masalah ini berlaku dan cara menyelesaikannya.

1. Mengapakah terdapat masalah gambar album tidak dipaparkan?

1. Isu kebenaran

Dalam sistem Android, kami perlu memohon kebenaran secara dinamik untuk membaca storan luaran sebelum kami boleh mengakses album Jika kami tidak berjaya memohon kebenaran, gambar dalam album tidak akan dapat dibaca dan tidak boleh dipaparkan.

2. Isu jenis data

Apabila memanggil API untuk memilih gambar album, kami perlu mengembalikan tatasusunan untuk memuatkan gambar yang dipilih, tetapi kadangkala data mungkin muncul dalam masalah ketidakpadanan jenis A kami menghalang imej yang dipilih daripada dipaparkan pada halaman.

3. Masalah laluan

Gambar yang dipilih dalam album perlu dipaparkan menggunakan laluan gambar apabila dipindahkan ke halaman hujung hadapan, tetapi jika laluan kita ditulis dengan salah atau nama fail tidak sepadan, ia juga akan menyebabkan Imej yang dipilih tidak dapat dipaparkan dengan betul.

2. Bagaimana untuk menyelesaikan masalah gambar album tidak dipaparkan?

1. Semak isu kebenaran

Apabila memilih gambar album, kami perlu memohon kebenaran untuk membaca storan luaran Jika permohonan kebenaran kami tidak berjaya, kami perlu menyemak. Anda boleh menyelesaikan masalah kebenaran melalui langkah berikut:

(1) Tambahkan kebenaran storan luaran baca dalam fail manifest.json:

"android": {
    "permission": [
      "android.permission.READ_EXTERNAL_STORAGE"
    ]
  }
Salin selepas log masuk

(2) Pilih album yang anda mahu gunakan Dalam halaman fungsi gambar, gunakan kaedah uni.requestAuthorize untuk memohon kebenaran:

uni.requestAuthorize({
    scope: 'scope.writePhotosAlbum',
    success() {
        console.log('授权成功')
    },
    fail() {
        console.log('授权失败')
    }
})
Salin selepas log masuk

2 Semak masalah jenis data

Jika jenis data kami tidak sepadan, pilihan gambar tidak boleh dipaparkan seperti biasa pada halaman. Kita perlu memberi perhatian kepada jenis data yang digunakan dalam kod, seperti contoh berikut:

data() {
    return {
       imgList: [],
    }
},
methods: {
    chooseImage(){
        uni.chooseImage({
            count: 3,
            sizeType: ['original', 'compressed'],
            sourceType: ['album', 'camera'],
            success: function (res) {
                this.imgList = res.tempFilePaths; // 选择图片成功后将图片路径存入imgList数组
            }
        })
    }
}
Salin selepas log masuk

Dalam kod di atas, kami menyimpan laluan sementara imej yang dipilih dalam tatasusunan imgList, jadi jika kita perlu Imej yang dipilih boleh dipaparkan dalam kaedah berikut:

<view>
    <image v-for="(item,index) in imgList" :src="item"></image>
</view>
Salin selepas log masuk

Dalam kod di atas, kami menggunakan v-for untuk melintasi setiap elemen dalam tatasusunan imgList, dan gunakan tag :image untuk menambah imej yang dipaparkan pada halaman.

3 Semak isu laluan

Kita perlu menggunakan laluan yang betul untuk rujukan semasa memaparkan imej, jadi kita perlu menyemak dengan teliti sama ada laluan imej itu betul dan sama ada terdapat ralat ejaan dan isu lain. Biasanya, apa yang kita kembalikan selepas memilih gambar adalah laluan sementara, tetapi apabila memaparkan gambar kita perlu menggunakan laluan tempatan. Kita boleh mendapatkan laluan setempat melalui kaedah berikut:

let realPath = '';
uni.getFileSystemManager().access({
        path: tempFilePaths,
        success() {
            realPath = wx.env.USER_DATA_PATH + '/' + new Date().getTime() + '.png'; //使用 wx.env.USER_DATA_PATH 获取本地存储路径
            uni.getFileSystemManager().saveFile({
                tempFilePath: tempFilePaths, // 临时文件地址
                filePath: realPath,
                success: (res) => {
                        console.log('保存图片到本地成功:' + res.savedFilePath)
                },
                fail: function (res) {
                    console.log(res);
                }
            });
        },
        fail() {
            console.log('访问失败')
        }
});
Salin selepas log masuk

Melalui kaedah di atas, kita boleh menyimpan imej yang dipilih secara setempat dan memanggil fungsi panggil balik selepas berjaya menyimpan untuk mendapatkan dan memaparkan laluan.

Ringkasan

Gambar album yang tidak dipaparkan adalah masalah biasa apabila kami membangunkan menggunakan Uniapp. Biasanya, masalah ini disebabkan oleh kebenaran yang salah, jenis data, atau laluan, dsb. Kami boleh menyelesaikan masalah ini dengan menyemak kebenaran, jenis data dan laluan. Saya harap artikel ini dapat membantu semua orang dan menjadikan proses pembangunan Uniapp lebih lancar.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah bahawa gambar album yang dipilih tidak dipaparkan dalam projek uniapp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!