收藏
回答

微信小程序不支持Blob对象吗?

这个是我在开发者工具上面生成的小程序码。因为官方api给我返回的是二进制流的数据,我就用blob解码了一下,但是在真机上面,log打印Blob is not defined.


我现在想问,如何解决真机不支持Blob对象的问题了,以及是否有替代方案

最后一次编辑于  2018-07-27
回答关注问题邀请回答
收藏

9 个回答

  • 🍋
    🍋
    2022-07-12

    使用wx.getFileSystemManager().writeFile可以解析二进制流保存进临时路径,效果等同于URL.createObjectURL(new Blob(...)),如无特殊需求不需要用到blob

    2022-07-12
    有用 3
    回复 4
    • 浮生未歇🇭🇷
      浮生未歇🇭🇷
      2022-11-18
      特意注册进来,给你点赞
      2022-11-18
      回复
    • 迷途小羔羊
      迷途小羔羊
      2022-12-12
      试了无法用Image.src加载图片回来
      2022-12-12
      回复
    • 迷途小羔羊
      迷途小羔羊
      2022-12-12回复迷途小羔羊
      显示307状态
      2022-12-12
      回复
    • 好人
      好人
      2023-08-14
      blob没有大小限制
      2023-08-14
      回复
  • 是什么颜色
    是什么颜色
    2018-10-18

    希望支持下 Blob 对象

    2018-10-18
    有用 2
    回复
  • 夜航星星亮
    夜航星星亮
    2023-03-09

    我也遇到了这个问题,最后使用了uniapp的uni.arrayBufferToBase64()这个API,小程序有类似的API,可供参考。

    2023-03-09
    有用
    回复
  • Afan.
    Afan.
    2018-07-31

    你让后台创建本地文件二维码,返回本地文件资源路径阿.

    2018-07-31
    有用
    回复
  • 2018-07-30

    换个后台吧

    2018-07-30
    有用
    回复 3
    • Creep
      Creep
      2018-07-30

      目前问题已经解决😁

      2018-07-30
      回复
    • 赵岩山
      赵岩山
      2018-11-06

      你好,这个问题如何解决啊???

      2018-11-06
      回复
    • 你头发掉了
      你头发掉了
      2020-07-14回复Creep
      楼主 你是怎么解决这个问题的
      2020-07-14
      回复
  • 曾畅
    曾畅
    2018-07-29

    后台处理吧。后台处理不了就换个后台。

    2018-07-29
    有用
    回复
  • 是小白啊
    是小白啊
    2018-07-27

    你好,暂时不支持Blob对象


    2018-07-27
    有用
    回复 1
    • Creep
      Creep
      2018-07-27

      那要如何解决这个二进制流图片的问题呢。

      前端有别的解决方案吗

      2018-07-27
      回复
  • 法隆
    法隆
    2018-07-27

    请求官方接口的放在自己的后台,你请求自己的后台,后台先把二进制流处理成base64就行了

    2018-07-27
    有用
    回复 6
    • Creep
      Creep
      2018-07-27

      就是因为后台做不了这个功能,才放在前端来处理。

      后台是用的Node.js来搭建的,他拿不到api返回的数据。

      2018-07-27
      回复
    • 法隆
      法隆
      2018-07-27回复Creep

      我也用node写过 可以拿到 问问是什么原因吧

      2018-07-27
      回复
    • Creep
      Creep
      2018-07-27回复法隆

      后台的意思是,他现在搭的框架,返回的是promise对象,但是api返回的不是res这种格式,直接报错了。

      2018-07-27
      回复
    • 法隆
      法隆
      2018-07-27

      这和promise没半毛钱关系,你们后台问题很大!副一段我用egg写的后台好了,这里确实频繁调access_token不太合理,当时为了测试用的

      'use strict';
       
      const Controller = require('egg').Controller;
       
      class wechatAPI extends Controller {
          async accessToken() {
              let appid = 'xxx';
              let secret = 'xxx';
              let url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='+appid+'&secret='+secret;
              const ctx = this.ctx;
              const result = await ctx.curl(url,{
                  dataType: 'json'
              });
              console.log(result.data);
              return result.data.access_token;
          }
       
          async qrcode(scene,access_token){
              let url = 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token='+access_token;
              const data = {
                  'scene':scene,
                  'page':'xxx'
              };
              const ctx = this.ctx;
              const result = await ctx.curl(url,{
                  method: 'POST',
                  contentType: 'json',
                  data: data
              });
              return result.data.toString('base64');
          }
       
          async getQRcode(){
              let token = await this.accessToken();
              const ctx = this.ctx;
              let scene =  this.ctx.request.query.scene;
              ctx.body = await this.qrcode(scene,token);
          }
      }
       
      module.exports = wechatAPI;


      2018-07-27
      回复
    • Creep
      Creep
      2018-07-27回复法隆

      好的,我再跟我们后台沟通一下,看下具体原因。

      真的多谢你了朋友   ( •̀ ω •́ )✧

      2018-07-27
      回复
    查看更多(1)
  • Creep
    Creep
    2018-07-27

    有没有大佬提供下解决方案呀.....卡在这个问题一天了

    2018-07-27
    有用
    回复 1
    • 洋洋
      洋洋
      2021-05-13
      请问您解决了吗,我也遇到了
      2021-05-13
      回复
登录 后发表内容