0

我正在使用react-native-fetch-blob庫中的File System API保存的圖片只能在手機重新啓動時顯示 - 反應原生Android

我從服務器請求一個圖像,接收一個base64,然後將它保存到android fs中的Pictures目錄。

我保存的圖像是這樣的:

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) 
    }); 
}, 

問題
圖像成功保存,但是當我打開Android的畫廊是不可見的。但是,當我關閉並在Android模擬器上顯示時,它就會顯示在圖庫中。

問題
我怎樣才能查看在Android的畫廊圖像,而不必重新啓動仿真?


解決方案


我說這上面的方法在文件被創建後:

RNFetchBlob.fs.scanFile([ { path : imageLocation, mime : mimetype_attachment } ]) 
.then(() => { 
    console.log("scan file success") 
}) 
.catch((err) => { 
    console.log("scan file error") 
}) 

謝謝你@Xeijp。

回答

2

在Android中,要在圖庫中顯示圖像,您需要在該文件上使用「媒體掃描儀」。反應原生取入的斑點確實提供了一個API,這個

fs.scanFile(path_of_the_file) 

document

+0

描述下的圖像添加到mediadb呀目錄!謝謝! – Larney

1

畫廊得到它-S從媒體數據庫的內容。媒體掃描器會分析文件系統並相應地更新媒體數據庫。它可能需要一段時間,直到mediascanner找到你的新形象。

+0

感謝您的反饋,但我一直在尋找一種反應原生的android解決方案。 – Larney

相關問題