利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法


Posted in Javascript onMarch 29, 2019

有时候我们可能需要在其他的网页上展示我们自己的小程序中某些页面的小程序码,这种时候,我们需要用到小程序的生成小程序码的相关接口。

工具选型

我们仍然选用简单方便的weixin-java-miniapp来完成此功能。

项目配置

详见我们的另一篇文章点此进入

生成小程序码的相关类型

小程序码的其他生成方式以及相关类型在这篇文章点此进入中介绍的较为详细,此处不再赘述,以下仅以生成不限制张数的这种类型来做一个示例。

生成小程序码图片

先获取小程序的service实例wxMaService。

再获取二维码相关操作的service实例

// 获取小程序服务实例
WxMaService wxMaService = WxMaConfiguration.getWxMaService();

// 获取小程序二维码生成实例
WxMaQrcodeService wxMaQrcodeService = wxMaService.getQrcodeService();

// 设置小程序二维码线条颜色为黑色
WxMaCodeLineColor lineColor = new WxMaCodeLineColor("0", "0", "0");

// 生成二维码图片字节流(此处也可以生成File类型,如果想将图片文件保存到服务器就生成File类型,此处生成byte[]类型,方便直接返回文件流到前端)
byte[] qrCodeBytes = null;
qrCodeBytes = wxMaQrcodeService.createWxaCodeUnlimitBytes(String.valueOf(id), null, 430, false, lineColor, false);

返回文件流

将文件流写到response中,相关示例代码如下:

@RestController
@RequestMapping("/qrCode")
public class QrCodeController {
 private static final Logger logger = LoggerFactory.getLogger(QrCodeController.class);

 @GetMapping("/getMiniappQrCode/{id}")
 public void getMiniappQrCode(@PathVariable("id") Long id, HttpServletRequest request, HttpServletResponse response) throws Exception{
  // 获取小程序服务实例
  WxMaService wxMaService = WxMaConfiguration.getWxMaService();
  // 获取小程序二维码生成实例
  WxMaQrcodeService wxMaQrcodeService = wxMaService.getQrcodeService();

  // 设置小程序二维码线条颜色为黑色
  WxMaCodeLineColor lineColor = new WxMaCodeLineColor("0", "0", "0");

  // 生成二维码图片字节流
  byte[] qrCodeBytes = null;
  try{
   qrCodeBytes = wxMaQrcodeService.createWxaCodeUnlimitBytes(String.valueOf(id), null, 430, false, lineColor, false);
  } catch(Exception e){
   logger.error("生成小程序码出错", e);
  }

  // 设置contentType
  response.setContentType("image/png");

  // 写入response的输出流中
  OutputStream stream = response.getOutputStream();
  stream.write(qrCodeBytes);
  stream.flush();
  stream.close();
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
Feb 15 Javascript
Javascript 表单之间的数据传递代码
Dec 04 Javascript
JavaScript DOM 学习第二章 编辑文本
Feb 19 Javascript
JS继承 笔记
Jul 13 Javascript
检测input每次的输入是否合法遇到汉字输入就有问题
May 23 Javascript
jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
Jun 04 Javascript
jquery获得option的值和对option进行操作
Dec 13 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
Jan 23 Javascript
js事件源window.event.srcElement兼容性写法(详解)
Nov 25 Javascript
微信小程序实现文字无限轮播效果
Dec 28 Javascript
使用Node.js实现base64和png文件相互转换的方法
Mar 11 Javascript
Vue2项目中对百度地图的封装使用详解
Jun 16 Vue.js
微信小程序实现获取小程序码和二维码java接口开发
Mar 29 #Javascript
详解vue项目打包步骤
Mar 29 #Javascript
jQuery实现动态添加和删除input框代码实例
Mar 29 #jQuery
Vue项目history模式下微信分享爬坑总结
Mar 29 #Javascript
vue中使用微信公众号js-sdk踩坑记录
Mar 29 #Javascript
微信小程序学习笔记之本地数据缓存功能详解
Mar 29 #Javascript
微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
Mar 29 #Javascript
You might like
php方法调用模式与函数调用模式简例
2011/09/20 PHP
php中通过curl模拟登陆discuz论坛的实现代码
2012/02/16 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
php JWT在web端中的使用方法教程
2018/09/06 PHP
PHP中$GLOBALS与global的区别详解
2019/03/21 PHP
JavaScript中的View-Model使用介绍
2011/08/11 Javascript
Blocksit插件实现瀑布流数据无限( 异步)加载
2014/06/20 Javascript
JavaScript版的TwoQueues缓存模型
2014/12/29 Javascript
jQuery修改class属性和CSS样式整理
2015/01/30 Javascript
javascript+HTML5的Canvas实现Lab单车动画效果
2015/08/07 Javascript
JavaScript中字面量与函数的基本使用知识
2015/10/20 Javascript
js+canvas绘制矩形的方法
2016/01/28 Javascript
JS中检测数据类型的几种方式及优缺点小结
2016/12/12 Javascript
javascript内存分配原理实例分析
2017/04/10 Javascript
vue使用xe-utils函数库的具体方法
2018/03/06 Javascript
基于vue.js实现分页查询功能
2018/12/29 Javascript
解决layer弹出层自适应页面大小的问题
2019/09/16 Javascript
vue实现在线翻译功能
2019/09/27 Javascript
24个ES6方法解决JS实际开发问题(小结)
2020/05/31 Javascript
Python3访问并下载网页内容的方法
2015/07/28 Python
深入解析Python中的__builtins__内建对象
2016/06/21 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
2019/01/17 Python
Python使用正则实现计算字符串算式
2019/12/29 Python
Python实现SMTP邮件发送
2020/06/16 Python
Css3实现无缝滚动防抖
2020/09/14 HTML / CSS
详解canvas绘图时遇到的跨域问题
2018/03/22 HTML / CSS
英国最大的海报商店:GB Posters
2018/03/20 全球购物
南京某公司笔试题
2013/01/27 面试题
为什么要做架构设计
2015/07/08 面试题
家长给老师的道歉信
2014/01/13 职场文书
信访工作者先进事迹
2014/01/17 职场文书
幼儿园大班家长评语
2014/04/17 职场文书
学校消防安全责任书
2014/07/23 职场文书
医院保洁员岗位职责
2015/02/13 职场文书
Python 数据可视化工具 Pyecharts 安装及应用
2022/04/20 Python
Go中使用gjson来操作JSON数据的实现
2022/08/14 Golang