Lar*_*ney 6 javascript blob android-emulator react-native react-native-android
我想用uri填充图像。
我从服务器请求图像,它返回一个BLOB。
然后,我将BLOB转换为带有以下行的URL:
var blobUrl = URL.createObjectURL(blob);
Run Code Online (Sandbox Code Playgroud)
然后,我尝试用URL填充图像:
<Image source={{uri: blobURL}} style={{width: 100, height: 50}} />
Run Code Online (Sandbox Code Playgroud)
图像将不会显示。我该怎么办?
我正在使用连接到本地主机的android模拟器。可能与BLOB url被存储到本地主机有关吗?
还是可能是简单的语法错误?
谢谢。
React-Native 不支持 blob [参考:Git/React-Native ]。为了让这个工作,我必须下载react-native-fetch-blob它返回一个 base64 字符串。
返回 base64 字符串的函数:
var RNFetchBlob = require('react-native-fetch-blob').default;
getImageAttachment: function(uri_attachment, mimetype_attachment) {
return new Promise((RESOLVE, REJECT) => {
// Fetch attachment
RNFetchBlob.fetch('GET', config.apiRoot+'/app/'+uri_attachment)
.then((response) => {
let base64Str = response.data;
var imageBase64 = 'data:'+mimetype_attachment+';base64,'+base64Str;
// Return base64 image
RESOLVE(imageBase64)
})
}).catch((error) => {
// error handling
console.log("Error: ", error)
});
},
Run Code Online (Sandbox Code Playgroud)
用 base64 填充图像
然后我用返回的 base64Image 填充图像:
<Image source={{uri: imageBase64}} style={styles.image} />
Run Code Online (Sandbox Code Playgroud)
收到 blob 后:
let imageUri = "data:image/png;base64," + blob;
<Image source={{uri: imageUri, scale: 1}} style={{height: 30, width: 30}}/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8694 次 |
| 最近记录: |