【问题标题】:Ionic Native HTTP request returns Blob without typeIonic Native HTTP 请求返回没有类型的 Blob
【发布时间】:2021-11-01 00:53:10
【问题描述】:

我有这段代码可以抓取图像字符串并将其编码为 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})

【问题讨论】:

    标签: angular typescript http blob ionic-native


    【解决方案1】:

    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,其他代码无法与之交互。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-15
      • 1970-01-01
      • 1970-01-01
      • 2018-05-07
      • 1970-01-01
      • 2011-12-10
      • 2020-12-12
      相关资源
      最近更新 更多