前端调用微信JSDK实现二维码扫描功能

页面中引入JS的代码:


<script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
<script type="text/javascript">function initWeiXinJsSdk(){wx.config({debug : false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。appId : '${appId}',//$("#appId").val(), // 必填,企业微信的cropIDtimestamp : '${timestamp}',//$("#timestamp").val(), // 必填,生成签名的时间戳nonceStr : '${nonceStr}',//$("#nonceStr").val(), // 必填,生成签名的随机串signature : '${signature}',//$("#signature").val(),// 必填,签名jsApiList : [ 'scanQRCode', 'getLocation','chooseImage','uploadImage','downloadImage']// 必填,需要使用的JS接口列表,所有JS接口列表见附录2});wx.error(function(res) {console.log(res);//alert(res);// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。});}/*** 初始化坐标* @returns*/function initMapLocation(callback){//初始化坐标wx.getLocation({type: 'wgs84', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'success: function (res) {var lon = res.longitude; //经度var lat = res.latitude;    //纬度var errmsg = res.errMsg;var errResult = errmsg.split(':');if (errResult[1] == "ok") {LocationChange(lon,lat,function(result){callback(result);});}},cancel: function (res) {$.toptip('用户拒绝授权获取地理位置', 'error');var result = {'code':'01', 'msg':'用户拒绝授权获取地理位置', 'lng': 0, 'lat': 0};callback(result);}});}/*** 坐标转换(高德坐标)* @param lon 经度* @param lat 纬度* @returns*/function LocationChange(lon,lat,callback) {var map = new AMap.Map('app_index_map', {resizeEnable: true,zoom: 11});$.ajax({type: "get",url: "http://restapi.amap.com/v3/assistant/coordinate/convert?key=1b718b2826abfae7be353f5f27f89b7b&locations=" + lon + "," + lat + "&coordsys=gps",async: true,dataType: "json",success: function (res) {var latlng = res.locations;var locations = latlng.split(',');var result = {'code':'00', 'msg': '定位成功', 'lng': locations[0], 'lat': locations[1], 'map':map};addMarker(map, result);callback(result);},error:function(res){var result = {'code':'01', 'msg': '定位失败', 'lng': 0, 'lat': 0, 'map':map};callback(result);}});}/*** 标记地图位置* @param map* @param result* @returns*/function addMarker(map, result) {var marker = new AMap.Marker({position: [result.lng, result.lat]});marker.setMap(map);/* var circle = new AMap.Circle({center: [result.lng, result.lat],radius: 100,fillColor: "#000000", //填充颜色fillOpacity: 0.2,//填充透明度strokeColor: "#000000",//线颜色strokeOpacity: 0.6,//线透明度strokeWeight: 0,//线宽strokeStyle: "solid"//线样式});circle.setMap(map); */map.setFitView();}
</script>

扫描事件触发

<i class="scan-font iconfont icon-sao" id="icon-saoma"></i>
()(function(){initWeiXinJsSdk();
});wx.ready(function () {document.querySelector('#icon-saoma').onclick = function() {wx.scanQRCode({desc : 'scanQRCode desc',needResult : 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,scanType : [ "qrCode", "barCode" ], // 可以指定扫二维码还是一维码,默认二者都有success : function(res) {var url = res.resultStr;var errmsg = res.errMsg;var errResult = errmsg.split(':');if (errResult[1] == "ok") {//获取设备SN码if(url.indexOf('=')==-1){$("#txtSnCode").val($.trim(url));}else{var code = $.trim(url.substring(url.indexOf('=') + 1,url.length));$("#txtQrCode").val(code);//二维码值$("#txtSnCode").val('');}$("#signboard").val("1");//一些业务操作的方法//   do somthing....} else {//获取失败}},error : function(res) {if (res.errMsg.indexOf('function_not_exist') > 0) {alert('版本过低请升级');}}});};});

H5实现微信SDK二维码扫描相关推荐

  1. QRCode 扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式...

    QRCode 扫描二维码.扫描条形码.相册获取图片后识别.生成带 Logo 二维码.支持微博微信 QQ 二维码扫描样式 参考链接:https://github.com/bingoogolapple/B ...

  2. 扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式

    GitHub项目的链接地址 目录 功能介绍 常见问题 效果图与示例 apk Gradle 依赖 布局文件 自定义属性说明 接口说明 关于我 功能介绍 ZXing 生成可自定义颜色.带 logo 的二维 ...

  3. ReactNative从相册选取二维码 进行扫描识别、扫描条形码、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式

    我的demo 地址 http://github.com/yrjwcharm/react-native-scanner-qrcode 博友直接 下载压缩包 或者git clone 因为我的版本比较高.所 ...

  4. Android 基于google Zxing实现二维码 条形码扫描,仿微信二维码扫描效果

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 转载请注 ...

  5. Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果

    转载请注明出处:http://blog.csdn.net/xiaanming/article/details/10163203 了解二维码这个东西还是从微信中,当时微信推出二维码扫描功能,自己感觉挺新 ...

  6. 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果

    转载请注明出处:http://blog.csdn.net/xiaanming/article/details/10163203 了解二维码这个东西还是从微信中,当时微信推出二维码扫描功能,自己感觉挺新 ...

  7. 解决Android二维码扫描ZXing竖屏拉伸变长闪退扫描区域小等问题

    Android 基于google Zxing实现二维码.条形码扫描,仿微信二维码扫描效果 这篇文章写的不错,但是按照这篇文章使用二维码的话会出现竖屏扫描图像拉伸变长的问题(有一个地方计算错误),解决拉 ...

  8. Windows逆向 微信登录二维码的字符串

    获取微信的登录二维码,网上已有很多教程了,这里稍作总结,大概就以下两种方式: 1.直接获取二维码的图片数据,下载到本地: 2.获取二维码所表示的字符串,利用其它库(比如:libqrencode)来生成 ...

  9. 一个二维码扫描自动识别下载应用【微信提示】

    先前写了一个关于二维码扫描自动识别设备系统,并自动去下载相应版本的APP, 前一段时间微信扫描后,则不可再下载,原因是微信屏蔽了,只能提示用户从浏览器打开,并自动下载: 下载的界面效果: 下载的 do ...

最新文章

  1. Android EditText 编辑框 获取焦点的方法
  2. Springboot在IDEA热部署的配置方法
  3. Fiddler 环境和过滤规则详解
  4. 云服务器开启ftp_FTP是什么?FTP和虚拟主机的关系
  5. mysql 怎么登陆远程服务器_教你手机怎么远程连接云服务器
  6. 产生阻滞的问题 net4.6_识别左束支传导阻滞背后的凶险:Cabrera征和Chapman征|识“图”寻踪...
  7. 利用ffmpeg来进行视频解码的完整示例代码
  8. webstrom 开发工具简介
  9. Golang程序性能分析(一)pprof和go-torch
  10. Jdbc普通查询、流式查询、游标查询
  11. 深入理解NIO - Selector、ServerSocketChannel、SocketChannel底层原理
  12. 微软拟禁用JIT提高Edge浏览器安全性
  13. 调用sklearn包中的PLA算法[转载]
  14. star法则 java_STAR法则(示例代码)
  15. Ubuntu 安装微信,网页版无法登陆
  16. 【游戏开发进阶】教你使用IL2CppDumper从Unity il2cpp的二进制文件中获取类型、方法、字段等(反编译)
  17. Java —— 自定义JSR303校验
  18. 从此爱情与我无关,只做一个嗜钱如命的渣男!
  19. mysql删除分表键_一文看懂 MySQL 分区和分表,提高表增删改查效率
  20. Java学习—初入Java

热门文章

  1. oracle 外键约束 权限,ORACLE外键约束(FORIGEN KEY)
  2. Palabos: 关于rho和rhoBar的探讨
  3. setLayout()和GridData的设置
  4. java 熔断机制_熔断机制及容错框架(Hystrix)的简单使用
  5. cpu服务器内存条和主板组装,HP Gen8服务器更换CPU及添加内存
  6. 什么蓝牙耳机适合realme手机?适合realme的蓝牙耳机推荐
  7. form submit提交的几种方法
  8. 【Graph Embedding】DeepWalk:算法原理,实现和应用
  9. 前端静态资源加载顺序
  10. 【WINDOWS / DOS 批处理】attrib命令详解(三)