小程序
小游戏
企业微信
微信支付
扫描小程序码分享
这个是我在开发者工具上面生成的小程序码。因为官方api给我返回的是二进制流的数据,我就用blob解码了一下,但是在真机上面,log打印Blob is not defined.
我现在想问,如何解决真机不支持Blob对象的问题了,以及是否有替代方案
9 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
使用wx.getFileSystemManager().writeFile可以解析二进制流保存进临时路径,效果等同于URL.createObjectURL(new Blob(...)),如无特殊需求不需要用到blob
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
希望支持下 Blob 对象
我也遇到了这个问题,最后使用了uniapp的uni.arrayBufferToBase64()这个API,小程序有类似的API,可供参考。
你让后台创建本地文件二维码,返回本地文件资源路径阿.
换个后台吧
目前问题已经解决😁
你好,这个问题如何解决啊???
后台处理吧。后台处理不了就换个后台。
你好,暂时不支持Blob对象
那要如何解决这个二进制流图片的问题呢。
前端有别的解决方案吗
请求官方接口的放在自己的后台,你请求自己的后台,后台先把二进制流处理成base64就行了
就是因为后台做不了这个功能,才放在前端来处理。
后台是用的Node.js来搭建的,他拿不到api返回的数据。
我也用node写过 可以拿到 问问是什么原因吧
后台的意思是,他现在搭的框架,返回的是promise对象,但是api返回的不是res这种格式,直接报错了。
这和promise没半毛钱关系,你们后台问题很大!副一段我用egg写的后台好了,这里确实频繁调access_token不太合理,当时为了测试用的
'use strict'
;
const Controller = require(
'egg'
).Controller;
class wechatAPI extends Controller {
async accessToken() {
let appid =
'xxx'
let secret =
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){
'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token='
+access_token;
const data = {
'scene'
:scene,
'page'
:
};
method:
'POST'
,
contentType:
data: data
result.data.toString(
'base64'
);
async getQRcode(){
let token = await
.accessToken();
let scene =
.ctx.request.query.scene;
ctx.body = await
.qrcode(scene,token);
module.exports = wechatAPI;
好的,我再跟我们后台沟通一下,看下具体原因。
真的多谢你了朋友 ( •̀ ω •́ )✧
有没有大佬提供下解决方案呀.....卡在这个问题一天了
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
使用wx.getFileSystemManager().writeFile可以解析二进制流保存进临时路径,效果等同于URL.createObjectURL(new Blob(...)),如无特殊需求不需要用到blob
希望支持下 Blob 对象
我也遇到了这个问题,最后使用了uniapp的uni.arrayBufferToBase64()这个API,小程序有类似的API,可供参考。
你让后台创建本地文件二维码,返回本地文件资源路径阿.
换个后台吧
目前问题已经解决😁
你好,这个问题如何解决啊???
后台处理吧。后台处理不了就换个后台。
你好,暂时不支持Blob对象
那要如何解决这个二进制流图片的问题呢。
前端有别的解决方案吗
请求官方接口的放在自己的后台,你请求自己的后台,后台先把二进制流处理成base64就行了
就是因为后台做不了这个功能,才放在前端来处理。
后台是用的Node.js来搭建的,他拿不到api返回的数据。
我也用node写过 可以拿到 问问是什么原因吧
后台的意思是,他现在搭的框架,返回的是promise对象,但是api返回的不是res这种格式,直接报错了。
这和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;
好的,我再跟我们后台沟通一下,看下具体原因。
真的多谢你了朋友 ( •̀ ω •́ )✧
有没有大佬提供下解决方案呀.....卡在这个问题一天了