Ich verwende die File System API aus der react-native-fetch-blob Bibliothek.Gespeicherte Bilder in der Galerie werden nur angezeigt, wenn das Telefon neu gestartet wird - React-Native Android
Ich Anfrage ein Bild vom Server, erhalten eine base64 und ich speichern es dann in Bilder Verzeichnis in der Android-fs.
ich speichern Sie das Bild wie folgt aus:
var RNFetchBlob = require('react-native-fetch-blob').default;
const PictureDir = RNFetchBlob.fs.dirs.PictureDir;
getImageAttachment: function(uri_attachment, filename_attachment, mimetype_attachment) {
return new Promise((RESOLVE, REJECT) => {
// Fetch attachment
RNFetchBlob.fetch('GET', config.apiRoot+'/app/'+uri_attachment)
.then((response) => {
let base64Str = response.data;
let imageLocation = PictureDir+'/'+filename_attachment;
//Save image
fs.writeFile(imageLocation, base64Str, 'base64');
console.log("FILE CREATED!!")
}).catch((error) => {
// error handling
console.log("Error:", error)
});
},
Problem
Das Bild speichert erfolgreich, aber wenn ich die Galerie Android öffnen ist es nicht sichtbar. Aber wenn ich den Android-Emulator aus- und wieder einschalte, ist er in der Galerie sichtbar.
Frage
Wie kann ich das Bild in der Galerie Android ohne den Emulator neu starten zu müssen?
Lösung
Ich habe diese auf das obige Verfahren, nachdem die Datei erstellt:
RNFetchBlob.fs.scanFile([ { path : imageLocation, mime : mimetype_attachment } ])
.then(() => {
console.log("scan file success")
})
.catch((err) => {
console.log("scan file error")
})
Dank Sie @Xeijp.
wie beschrieben hinzufügen Ja ! Vielen Dank! – Larney