利用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模板技术
Apr 27 Javascript
node.js中的fs.symlinkSync方法使用说明
Dec 15 Javascript
js实现鼠标触发图片抖动效果的方法
Feb 27 Javascript
BootStrap实现邮件列表的分页和模态框添加邮件的功能
Oct 13 Javascript
详解Angular 4.x 动态创建组件
Apr 25 Javascript
JS实现登录页密码的显示和隐藏功能
Dec 06 Javascript
spirngmvc js传递复杂json参数到controller的实例
Mar 29 Javascript
JS与CSS3实现图片响应鼠标移动放大效果示例
May 04 Javascript
vue 项目 iOS WKWebView 加载
Apr 17 Javascript
javascript随机变色实例代码
Oct 15 Javascript
es6数组includes()用法实例分析
Apr 18 Javascript
Vue Router中应用中间件的方法
Aug 06 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
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
用js实现的模拟jquery的animate自定义动画(2.5K)
2010/07/20 Javascript
关于跨站脚本攻击问题
2011/12/22 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
浅谈JavaScript for循环 闭包
2016/06/22 Javascript
JavaScript提高网站性能优化的建议(二)
2016/07/24 Javascript
微信小程序  action-sheet详解及实例代码
2016/11/09 Javascript
JS利用cookies设置每隔24小时弹出框
2017/04/20 Javascript
jquery实现图片轮播器
2017/05/23 jQuery
详解angularjs 关于ui-router分层使用
2017/06/12 Javascript
使用Require.js封装原生js轮播图的实现代码
2017/06/15 Javascript
vue获取form表单的值示例
2019/10/29 Javascript
[09:31]2016国际邀请赛中国区预选赛Yao赛后采访 答题送礼
2016/06/27 DOTA
使用Python脚本来获取Cisco设备信息的示例
2015/05/04 Python
用Python登录好友QQ空间点赞的示例代码
2017/11/04 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
2017/11/29 Python
python如何统计序列中元素
2020/07/31 Python
python代码 FTP备份交换机配置脚本实例解析
2019/08/01 Python
详解用python生成随机数的几种方法
2019/08/04 Python
Django密码存储策略分析
2020/01/09 Python
AUC计算方法与Python实现代码
2020/02/28 Python
QML用PathView实现轮播图
2020/06/03 Python
python中scrapy处理项目数据的实例分析
2020/11/22 Python
CSS3实现红包抖动效果
2020/12/23 HTML / CSS
美国女孩服装购物网站:Justice
2017/03/04 全球购物
英国女士和男士时尚服装网上购物:Top Labels Online
2018/03/25 全球购物
SIMON MILLER官网:洛杉矶的生活方式品牌
2020/10/19 全球购物
建议书的格式
2014/05/12 职场文书
就业协议书怎么填
2014/09/15 职场文书
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
小学感恩节活动总结
2015/03/24 职场文书
大学生求职意向书
2015/05/11 职场文书
php TP5框架生成二维码链接
2021/04/01 PHP
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis
动画「进击的巨人」第86话播出感谢绘公开
2022/03/21 日漫
Android超详细讲解组件ScrollView的使用
2022/03/31 Java/Android