利用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 相关文章推荐
转一个日期输入控件,支持FF
Apr 27 Javascript
jqGrid读取选择的多行的某个属性代码
May 18 Javascript
jQuery分组选择器用法实例
Dec 23 Javascript
基于jquery实现即时检查格式是否正确的表单
May 06 Javascript
微信和qq时间格式模板实例详解
Oct 21 Javascript
AngularJS创建自定义指令的方法详解
Nov 03 Javascript
jquery easyui DataGrid简单示例
Jan 23 Javascript
Bootstrap输入框组件简单实现代码
Mar 06 Javascript
JavaScript中闭包的详解
Apr 01 Javascript
详解webpack+ES6+Sass搭建多页面应用
Nov 05 Javascript
JS数组求和的常用方法实例小结
Jan 07 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
Sep 21 Javascript
微信小程序实现获取小程序码和二维码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自定义函数返回多个值
2006/11/26 PHP
实用函数8
2007/11/08 PHP
PHP 面向对象 final类与final方法
2010/05/05 PHP
如何使用Strace调试工具
2013/06/03 PHP
php strnatcmp()函数的用法总结
2013/11/27 PHP
Yii2 批量插入、更新数据实例
2017/03/15 PHP
JS 对象介绍
2010/01/20 Javascript
jQuery EasyUI API 中文文档 - NumberBox数字框
2011/10/13 Javascript
JavaScript闭包 懂不懂由你反正我是懂了
2011/10/21 Javascript
JSON语法五大要素图文介绍
2012/12/04 Javascript
如何使用Javascript获取距今n天前的日期
2013/07/08 Javascript
javascript仿php的print_r函数输出json数据
2013/09/13 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
2013/12/16 Javascript
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
JS实现屏蔽网页右键复制及ctrl+c复制的方法【2种方法】
2016/09/04 Javascript
BootStrap 可编辑表Table格
2016/11/24 Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
2018/01/02 jQuery
微信小程序如何调用图片接口API并居中显示
2019/06/29 Javascript
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
浅谈关于vue中scss公用的解决方案
2019/12/02 Javascript
Element InputNumber计数器的使用方法
2020/07/27 Javascript
antd-日历组件,前后禁止选择,只能选中间一部分的实例
2020/10/29 Javascript
python使用pygame框架实现推箱子游戏
2018/11/20 Python
windows下 兼容Python2和Python3的解决方法
2018/12/05 Python
对python中xlsx,csv以及json文件的相互转化方法详解
2018/12/25 Python
python实现beta分布概率密度函数的方法
2019/07/08 Python
在Mac中PyCharm配置python Anaconda环境过程图解
2020/03/11 Python
Python控制台实现交互式环境执行
2020/06/09 Python
销售员试用期自我评价
2014/09/15 职场文书
教师个人工作总结范文2014
2014/11/10 职场文书
社区活动总结范文
2015/05/07 职场文书
师德培训心得体会2016
2016/01/09 职场文书
敬业奉献模范事迹材料(2016精选版)
2016/02/26 职场文书
python生成随机数、随机字符、随机字符串
2021/04/06 Python
springboot应用服务启动事件的监听实现
2022/04/06 Java/Android