Ionic Native HTTP 请求 returns 没有类型的 Blob
Ionic Native HTTP request returns Blob without type
我有一段代码可以抓取图像字符串并将其编码为 Blob
const reqOptions: any = {
method: 'get',
responseType: 'blob',
headers: {
accept: 'image/*'
}
}
ionresp = await this.ionicHttp.sendRequest(url, reqOptions)
如果我记录 Blob 我正在获取
Blob {size: 15312, type: ""}
我需要的 Blob 具有 image/png
类型,但之后我无法转换 Blob 或操作请求的数据,因此我得到了 Blob 类型集
如果我尝试使用 ionicHttp.get()
获取数据并自己将其转换为 Blob,ionresp
将返回一个空的 Blob
resp.Data = new Blob([ionresp], {type: type})
Blob 没有错误或返回,但 FileReader 在 Capacitor 中不起作用,我必须实施解决方法才能使其正常工作。
getFileReader(): FileReader {
const fileReader = new FileReader();
const zoneOriginalInstance = (fileReader as any)
["__zone_symbol__originalInstance"];
return zoneOriginalInstance || fileReader;
}
convertBlobToBase64(blob: Blob): Promise<string> {
return new Promise<string>((resolve, reject) => {
let reader = this.getFileReader();
reader.readAsDataURL(blob);
reader.onload = () => resolve(reader.result.toString());
reader.onerror = error => reject(error);
})
}
这是必要的,因为 Capacitor 在他自己的 Zone 中创建了 FileReader,其他代码无法与之交互。
我有一段代码可以抓取图像字符串并将其编码为 Blob
const reqOptions: any = {
method: 'get',
responseType: 'blob',
headers: {
accept: 'image/*'
}
}
ionresp = await this.ionicHttp.sendRequest(url, reqOptions)
如果我记录 Blob 我正在获取
Blob {size: 15312, type: ""}
我需要的 Blob 具有 image/png
类型,但之后我无法转换 Blob 或操作请求的数据,因此我得到了 Blob 类型集
如果我尝试使用 ionicHttp.get()
获取数据并自己将其转换为 Blob,ionresp
将返回一个空的 Blob
resp.Data = new Blob([ionresp], {type: type})
Blob 没有错误或返回,但 FileReader 在 Capacitor 中不起作用,我必须实施解决方法才能使其正常工作。
getFileReader(): FileReader {
const fileReader = new FileReader();
const zoneOriginalInstance = (fileReader as any)
["__zone_symbol__originalInstance"];
return zoneOriginalInstance || fileReader;
}
convertBlobToBase64(blob: Blob): Promise<string> {
return new Promise<string>((resolve, reject) => {
let reader = this.getFileReader();
reader.readAsDataURL(blob);
reader.onload = () => resolve(reader.result.toString());
reader.onerror = error => reject(error);
})
}
这是必要的,因为 Capacitor 在他自己的 Zone 中创建了 FileReader,其他代码无法与之交互。