利用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 相关文章推荐
JQuery.ajax传递中文参数的解决方法 推荐
Mar 28 Javascript
jQuery获取cookie值及删除cookie用法实例
Apr 15 Javascript
浅析JavaScript中浏览器的兼容问题
Apr 19 Javascript
jQuery layui常用方法介绍
Jul 25 Javascript
Vue.js 表单校验插件
Aug 14 Javascript
jQuery插件扩展操作入门示例
Jan 16 Javascript
JS实现AES加密并与PHP互通的方法分析
Apr 19 Javascript
JavaScript30 一个月纯 JS 挑战中文指南(英文全集)
Jul 23 Javascript
Parcel 打包示例(React HelloWorld)
Jan 16 Javascript
在微信小程序中使用图表的方法示例
Apr 25 Javascript
JavaScript编码小技巧分享
Sep 17 Javascript
Vue监视数据的原理详解
Feb 24 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中使用array_filter()函数过滤空数组的实现代码
2014/08/19 PHP
开启PHP的伪静态模式
2015/12/31 PHP
PHP操作Postgresql封装类与应用完整实例
2018/04/24 PHP
laravel实现上传图片并在页面显示的例子
2019/10/14 PHP
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
2006/06/26 Javascript
$()JS小技巧
2007/07/21 Javascript
改善你的jQuery的25个步骤 千倍级效率提升
2010/02/11 Javascript
jQuery取消ajax请求的方法
2015/06/09 Javascript
IE8下jQuery改变png图片透明度时出现的黑边
2015/08/30 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
2016/04/29 Javascript
百度多文件异步上传控件webuploader基本用法解析
2016/11/07 Javascript
javascript实现复选框全选或反选
2017/02/04 Javascript
JavaScript实现翻页功能(附效果图)
2017/02/16 Javascript
浅谈vue+webpack项目调试方法步骤
2017/09/11 Javascript
bootstrap中selectpicker下拉框使用方法实例
2018/03/22 Javascript
vue的diff算法知识点总结
2018/03/29 Javascript
使用bootstrap实现下拉框搜索功能的实例讲解
2018/08/10 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
2019/07/19 Javascript
Openlayers显示地理位置坐标的方法
2020/09/28 Javascript
在react项目中使用antd的form组件,动态设置input框的值
2020/10/24 Javascript
[01:02:18]VGJ.S vs infamous Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
tensorflow训练中出现nan问题的解决
2018/02/10 Python
Python利用正则表达式实现计算器算法思路解析
2018/04/25 Python
对python中xlsx,csv以及json文件的相互转化方法详解
2018/12/25 Python
pandas dataframe的合并实现(append, merge, concat)
2019/06/24 Python
Django admin model 汉化显示文字的实现方法
2019/08/12 Python
python:HDF和CSV存储优劣对比分析
2020/06/08 Python
体育专业学生自我评价范文
2014/01/17 职场文书
政治学专业毕业生求职信
2014/08/11 职场文书
励志演讲稿200字
2014/08/21 职场文书
先进教师事迹材料
2014/12/16 职场文书
个人先进事迹材料范文
2014/12/29 职场文书
社区端午节活动总结
2015/02/11 职场文书
2019最新版试用期劳动合同模板!
2019/07/04 职场文书
Python合并多张图片成PDF
2021/06/09 Python
Nginx location 和 proxy_pass路径配置问题小结
2021/09/04 Servers