利用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 相关文章推荐
浅谈Javascript如何实现匀速运动
Dec 19 Javascript
使用iojs的jsdom库实现同步系统时间
Apr 20 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
Jun 10 Javascript
jQuery使用animate实现ul列表项相互飘动效果示例
Sep 16 Javascript
JavaScript学习笔记整理_用于模式匹配的String方法
Sep 19 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
Jan 22 Javascript
谈谈VUE种methods watch和compute的区别和联系
Aug 01 Javascript
利用ES6实现单例模式及其应用详解
Dec 09 Javascript
Vue框架之goods组件开发详解
Jan 25 Javascript
详解react、redux、react-redux之间的关系
Apr 11 Javascript
js原生map实现的方法总结
Jan 19 Javascript
Element的el-tree控件后台数据结构的生成以及方法的抽取
Mar 05 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 array_filter除去数组中的空字符元素
2020/06/21 PHP
JS异常处理try..catch语句的作用和实例
2014/05/05 PHP
PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
2015/03/19 PHP
基于thinkPHP实现的微信自定义分享功能示例
2016/09/23 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
教你如何解密js/vbs/vbscript加密的编码异处理小结
2008/06/25 Javascript
js 与或运算符 || && 妙用
2009/12/09 Javascript
手把手教你自己写一个js表单验证框架的方法
2010/09/14 Javascript
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
Jquery中的层次选择器与find()的区别示例介绍
2014/02/20 Javascript
JS仿Windows开机启动Loading进度条的方法
2015/02/26 Javascript
JavaScript中的replace()方法使用详解
2015/06/06 Javascript
JS实现可调整倒计时间代码分享
2015/08/18 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
2016/06/12 Javascript
浅谈jQuery中事情的动态绑定
2017/02/12 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
2017/02/15 Javascript
js, jQuery实现全选、反选功能
2017/03/08 Javascript
基于JavaScript实现类名的添加与移除
2017/04/23 Javascript
详解vue.js的devtools安装
2017/05/26 Javascript
Form表单上传文件(type="file")的使用
2017/08/03 Javascript
Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数
2017/09/11 Javascript
AngularJS下$http服务Post方法传递json参数的实例
2018/03/29 Javascript
vuejs实现标签选项卡动态更改css样式的方法
2018/05/31 Javascript
详解tensorflow训练自己的数据集实现CNN图像分类
2018/02/07 Python
浅谈python可视化包Bokeh
2018/02/07 Python
Python使用Selenium爬取淘宝异步加载的数据方法
2018/12/17 Python
Python数学形态学实例分析
2019/09/06 Python
python能做什么 python的含义
2019/10/12 Python
Python通过正则库爬取淘宝商品信息代码实例
2020/03/02 Python
python实现密度聚类(模板代码+sklearn代码)
2020/04/27 Python
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
美国顶级奢侈茶:Mighty Leaf Tea(美泰茶)
2016/11/26 全球购物
JPA面试常见问题
2016/11/14 面试题
入党转正申请报告
2015/05/15 职场文书
决心书格式范文
2015/09/23 职场文书