利用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技术很烂的五个原因分析
Oct 28 Javascript
Web跨浏览器进程通信(Web跨域)
Apr 17 Javascript
JQuery基础语法小结
Feb 27 Javascript
JQuery替换DOM节点的方法
Jun 11 Javascript
原生javascript实现的一个简单动画效果
Mar 30 Javascript
JS碰撞运动实现方法详解
Dec 15 Javascript
关于javascript sort()排序你可能忽略的一点理解
Jul 18 Javascript
vue如何获取点击事件源的方法
Aug 10 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
Mar 08 Javascript
详解VUE-地区选择器(V-Distpicker)组件使用心得
May 07 Javascript
解决vue.js this.$router.push无效的问题
Sep 03 Javascript
解决vue $http的get和post请求跨域问题
Jun 07 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输出控制功能在简繁体转换中的应用
2006/10/09 PHP
一个好用的分页函数
2006/11/16 PHP
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
2014/07/01 PHP
php+mysqli使用面向对象方式更新数据库实例
2015/01/29 PHP
PHP MVC框架路由学习笔记
2016/03/02 PHP
JavaScript窗口功能指南之在窗口中书写内容
2006/07/21 Javascript
由prototype_1.3.1进入javascript殿堂-类的初探
2006/11/06 Javascript
彻底搞懂JS无缝滚动代码
2007/01/03 Javascript
jquery slibings选取同级其他元素的实现代码
2013/11/15 Javascript
javascript 中that的含义示例介绍
2014/05/14 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
JS实现弹性菜单效果代码
2015/09/07 Javascript
Boostrap栅格系统与自己额外定义的媒体查询的冲突问题
2017/02/19 Javascript
ES6入门教程之let和const命令详解
2017/05/17 Javascript
通过button将form表单的数据提交到action层的实例
2017/09/08 Javascript
vue+node+webpack环境搭建教程
2017/11/05 Javascript
详解VueJs中的V-bind指令
2018/05/03 Javascript
vue用递归组件写树形控件的实例代码
2018/07/19 Javascript
vue项目引入Iconfont图标库的教程图解
2018/10/24 Javascript
微信小程序开发实现消息推送
2020/11/18 Javascript
初学node.js中实现删除用户路由
2019/05/27 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
[57:22]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第五场
2018/04/10 DOTA
[01:02:20]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Scrapy爬虫实例讲解_校花网
2017/10/23 Python
python创建文件备份的脚本
2018/09/11 Python
Python从数据库读取大量数据批量写入文件的方法
2018/12/10 Python
python 同时运行多个程序的实例
2019/01/07 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
2019/01/17 Python
python tools实现视频的每一帧提取并保存
2020/03/20 Python
Python集中化管理平台Ansible介绍与YAML简介
2019/06/12 Python
python如何爬取动态网站
2020/09/09 Python
大学生就业推荐信范文
2013/11/29 职场文书
岗位竞聘书范文
2014/03/31 职场文书
汽车促销活动方案
2014/03/31 职场文书
Python机器学习应用之工业蒸汽数据分析篇详解
2022/01/18 Python