2016-04-18 16 views
8

Yerel olarak tepki vermek için b64 blobunu dönüştüreceğim.Nasıl React Native olarak base64 Blob dönüştürmek için?

Ama atob işlevinde hata alıyorum.

İşte kodlarım.

var binary = atob(this.state.avatarSource.uri.split(',')[1]); 
var byteNumbers = new Array(binary.length); 

for(var i = 0; i < binary.length; i++) { 
    byteNumbers.push(binary.charCodeAt(i)); 
} 
var file = new Blob([new Uint8Array(byteNumbers)], {type: 'image/jpeg'}); 

Herhangi bir fikri olan var mı?

+0

Eminim öyledir sorunların bu tür :) çözebilir buna çözüm bul? Aynı sorunu yaşıyorum – pomo

+0

Olası çoğaltması [JavaScript'te bir base64 dizesinden Blob oluşturma] (http://stackoverflow.com/questions/16245767/creating-a-blob-from-a-base64-string-in -javascript) – Endless

cevap

2

Görüntünün 64 tabanını alıyorum. Bundan sonra onu kodun altından görüntülüyorum. Sadece Debug Mode çalıştığını, bu

let imgSrc = "data:image/png;base64," + base64ImageData; 
<Image source={{uri: imgSrc, scale: 1}} style={{ height: 80, width: 80}}/> 
6

atob veya btoa kullanmayın yardımcı olabilir umuyoruz.

Hata Ayıklama Modu'nu kullandığınız zaman, JS kodunuzu tarayıcıda (V8 olması gerekir) çalıştırıyorsunuz. Bu durumda, uygulamayı üretim modunda çalıştırıyorsanız, JavascriptCore kullanıyor. atob veya btoa uygulaması.

Verileri BASE64 kodlu dizeye dönüştürmek için base-64'u kullanabilirsiniz, ancak sizin için doğru bir Blob nesnesi oluşturabileceğinden emin değilim.

Blob, JS içeriği ve dosya sistemi arasında bir köprüdür, React Native henüz dosya sistemi API'sine sahip değildir, bu nedenle bir Blob nesnesi alabilirsiniz ancak her zaman boş olabilir. Eğer dizi numaralarını içeren bir resim oluşturmak için gidiyoruz

, benim üzerinde çalıştığım bir projedir react-native-fetch-blob de bakabilirsiniz, umarım