微信小程序> 微信扫一扫接口开发案例实现第十课-微信扫一扫开发-微信小程序扫一扫功能

微信扫一扫接口开发案例实现第十课-微信扫一扫开发-微信小程序扫一扫功能

浏览量:1283 时间: 来源:dragonpeng2008
1.

微信扫一扫功能在我们日常生活中很常见,那么微信jsapi是如何实现扫一扫功能的呢,接来下给大家详细介绍,并附有代码实现。

2.

微信扫一扫

调起微信扫一扫接口wx.scanQRCode({needResult:0,//默认为0,扫描结果由微信处理,1则直接返回扫描结果,scanType:["qrCode","barCode"],//可以指定扫二维码还是一维码,默认二者都有success:function(res){varresultres.resultStr;//当needResult为1时,扫码返回的结果}});3.

第一、新建jsp页面,并引入js库

scriptsrc"http://res.wx.qq.com/open/js/jweixin-1.1.0.js"/scriptscriptsrc"http://libs.baidu.com/jquery/2.0.0/jquery.js"/script4.

jweixin-1.1.0.js是调用微信jsapi的库,所以必须引入,第二行是本案例使用了jquery,所以引入的是jquery库

5.

第二、引入界面样式,由于几节界面案例样式太难看,所以这次案例美化了一下界面。

linkrel"stylesheet"href"http://203.195.235.76/jssdk/css/style.css"/6.

第三、body/body之间的html代码

centerh3欢迎来到微信jsapi测试界面-V型知识库/h3/centerdivclass"lbox_closewxapi_form"h3id"menu-scan"微信扫一扫/h3spanclass"desc"调起微信扫一扫接口/spanbuttonclass"btnbtn_primary"id"scanQRCode0"scanQRCode(微信处理结果)/buttonbuttonclass"btnbtn_primary"id"scanQRCode1"scanQRCode(直接返回结果)/button/div7.

第四、script/script之间初始化微信jsapi库添加接口函数

wx.config({debug:true,//开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。appId:'${appId}',//必填,公众号的唯一标识timestamp:'${timestamp}',//必填,生成签名的时间戳nonceStr:'${nonceStr}',//必填,生成签名的随机串signature:'${signature}',//必填,签名,见附录1jsApiList:['checkJsApi','chooseImage','previewImage','uploadImage','downloadImage','getNetworkType',//网络状态接口'openLocation',//使用微信内置地图查看地理位置接口'getLocation',//获取地理位置接口'hideOptionMenu',//界面操作接口1'showOptionMenu',//界面操作接口2'closeWindow',////界面操作接口3'hideMenuItems',////界面操作接口4'showMenuItems',////界面操作接口5'hideAllNonBaseMenuItem',////界面操作接口6'showAllNonBaseMenuItem',////界面操作接口7'scanQRCode'//微信扫一扫接口]//必填,需要使用的JS接口列表,所有JS接口列表见附录2});8.

jsApiList数组中,最后一项就是我们调用微信扫一扫接口的函数,此函数必须在jsapi库中初始化,否则微信扫一扫功能无法调起。

9.

第五、调用第三步button按钮的功能js代码,在wx.ready中添加

//9微信原生接口开始---------------------//9.1.1扫描二维码并返回结果document.querySelector('#scanQRCode0').onclickfunction(){wx.scanQRCode();};//9.1.2扫描二维码并返回结果document.querySelector('#scanQRCode1').onclickfunction(){wx.scanQRCode({needResult:1,desc:'scanQRCodedesc',success:function(res){alert(JSON.stringify(res));}});};//9微信原生接口结束---------------------10.

第六、完整的jsp页面代码,读者可直接复制运行

%@pagelanguage"java"import"java.util.*"pageEncoding"utf-8"%%Stringpathrequest.getContextPath();StringbasePathrequest.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"htmlheadbasehref"%basePath%"!--www.vxzsk.com原创--title微信jsapi测试-V型知识库/titlemetaname"viewport"content"width320.1,initial-scale1,minimum-scale1,maximum-scale1,user-scalableno"linkrel"stylesheet"href"http://203.195.235.76/jssdk/css/style.css"/scriptsrc"http://res.wx.qq.com/open/js/jweixin-1.1.0.js"/scriptscriptsrc"http://libs.baidu.com/jquery/2.0.0/jquery.js"/scriptstyletype"text/css".desc{color:red;}/style/headbodycenterh3欢迎来到微信jsapi测试界面-V型知识库/h3/centerdivclass"lbox_closewxapi_form"h3id"menu-scan"微信扫一扫/h3spanclass"desc"调起微信扫一扫接口/spanbuttonclass"btnbtn_primary"id"scanQRCode0"scanQRCode(微信处理结果)/buttonbuttonclass"btnbtn_primary"id"scanQRCode1"scanQRCode(直接返回结果)/button/divdivstyle"display:none;"h3id"menu-webview"界面操作接口/h3brspanclass"desc"隐藏右上角菜单接口/spanbrbuttonclass"btnbtn_primary"id"hideOptionMenu"hideOptionMenu/buttonbrspanclass"desc"显示右上角菜单接口/spanbrbuttonclass"btnbtn_primary"id"showOptionMenu"showOptionMenu/buttonbrspanclass"desc"关闭当前网页窗口接口/spanbrbuttonclass"btnbtn_primary"id"closeWindow"closeWindow/buttonbrspanclass"desc"批量隐藏功能按钮接口/spanbrbuttonclass"btnbtn_primary"id"hideMenuItems"hideMenuItems/buttonbrspanclass"desc"批量显示功能按钮接口/spanbrbuttonclass"btnbtn_primary"id"showMenuItems"showMenuItems/buttonbrspanclass"desc"隐藏所有非基础按钮接口/spanbrbuttonclass"btnbtn_primary"id"hideAllNonBaseMenuItem"hideAllNonBaseMenuItem/buttonbrspanclass"desc"显示所有功能按钮接口/spanbrbuttonclass"btnbtn_primary"id"showAllNonBaseMenuItem"showAllNonBaseMenuItem/buttonbrp基础接口之判断当前客户端是否支持指定的js接口/pinputtype"button"value"checkJSAPI"id"checkJsApi"brspanclass"desc"style"color:red"地理位置接口-使用微信内置地图查看位置接口/spanbrbuttonclass"btnbtn_primary"id"openLocation"openLocation/buttonbrspanclass"desc"style"color:red"地理位置接口-获取地理位置接口/spanbrbuttonclass"btnbtn_primary"id"getLocation"getLocation/buttonbrspanclass"desc"style"color:red"获取网络状态接口/spanbrbuttonclass"btnbtn_primary"id"getNetworkType"getNetworkType/buttonbrh3id"menu-image"图像接口/h3spanclass"desc"拍照或从手机相册中选图接口/spanbrbuttonclass"btnbtn_primary"id"chooseImage"chooseImage/buttonbrspanclass"desc"预览图片接口/spanbrbuttonclass"btnbtn_primary"id"previewImage"previewImage/buttonbrspanclass"desc"上传图片接口/spanbrbuttonclass"btnbtn_primary"id"uploadImage"uploadImage/buttonbrspanclass"desc"下载图片接口/spanbrbuttonclass"btnbtn_primary"id"downloadImage"downloadImage/buttonbrbr显示图片imgalt""src""id"faceImg"/divscripttype"text/javascript"wx.config({debug:true,//开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。appId:'${appId}',//必填,公众号的唯一标识timestamp:'${timestamp}',//必填,生成签名的时间戳nonceStr:'${nonceStr}',//必填,生成签名的随机串signature:'${signature}',//必填,签名,见附录1jsApiList:['checkJsApi','chooseImage','previewImage','uploadImage','downloadImage','getNetworkType',//网络状态接口'openLocation',//使用微信内置地图查看地理位置接口'getLocation',//获取地理位置接口'hideOptionMenu',//界面操作接口1'showOptionMenu',//界面操作接口2'closeWindow',////界面操作接口3'hideMenuItems',////界面操作接口4'showMenuItems',////界面操作接口5'hideAllNonBaseMenuItem',////界面操作接口6'showAllNonBaseMenuItem',////界面操作接口7'scanQRCode'//微信扫一扫接口]//必填,需要使用的JS接口列表,所有JS接口列表见附录2});wx.ready(function(){//5图片接口//5.1拍照、本地选图varimages{localId:[],serverId:[]};document.querySelector('#chooseImage').onclickfunction(){wx.chooseImage({success:function(res){images.localIdres.localIds;alert('已选择'+res.localIds.length+'张图片');$("#faceImg").attr("src",res.localIds[0]);//显示图片到页面上}});};//5.2图片预览document.querySelector('#previewImage').onclickfunction(){wx.previewImage({current:'http://www.vxzsk.com/upload//bf04c9b5-5699-421d-900e-3b68bbe58a8920160816.jpg',urls:['http://www.vxzsk.com/upload//bf04c9b5-5699-421d-900e-3b68bbe58a8920160816.jpg','http://www.vxzsk.com/upload//bf04c9b5-5699-421d-900e-3b68bbe58a8920160816.jpg','http://www.vxzsk.com/upload//bf04c9b5-5699-421d-900e-3b68bbe58a8920160816.jpg']});};//5.3上传图片document.querySelector('#uploadImage').onclickfunction(){if(images.localId.length0){alert('请先使用chooseImage接口选择图片');return;}vari0,lengthimages.localId.length;images.serverId[];functionupload(){wx.uploadImage({localId:images.localId[i],success:function(res){i++;//alert('已上传:'+i+'/'+length);images.serverId.push(res.serverId);if(ilength){upload();}},fail:function(res){alert(JSON.stringify(res));}});}upload();};//5.4下载图片document.querySelector('#downloadImage').onclickfunction(){if(images.serverId.length0){alert('请先使用uploadImage上传图片');return;}vari0,lengthimages.serverId.length;images.localId[];functiondownload(){wx.downloadImage({serverId:images.serverId[i],success:function(res){i++;alert('已下载:'+i+'/'+length);images.localId.push(res.localId);if(ilength){download();}}});}download();};//6设备信息接口//6.1获取当前网络状态document.querySelector('#getNetworkType').onclickfunction(){wx.getNetworkType({success:function(res){alert(res.networkType);},fail:function(res){alert(JSON.stringify(res));}});};//网络接口结束//7地理位置接口开始//7.1查看地理位置document.querySelector('#openLocation').onclickfunction(){wx.openLocation({latitude:23.099994,longitude:113.324520,name:'TIT创意园',address:'广州市海珠区新港中路397号',scale:14,infoUrl:'http://weixin.qq.com'});};//7.2获取当前地理位置document.querySelector('#getLocation').onclickfunction(){wx.getLocation({success:function(res){alert(JSON.stringify(res));},cancel:function(res){alert('用户拒绝授权获取地理位置');}});};//7地理位置接口结束//8界面操作接口开始-----------//8.1隐藏右上角菜单document.querySelector('#hideOptionMenu').onclickfunction(){wx.hideOptionMenu();};//8.2显示右上角菜单document.querySelector('#showOptionMenu').onclickfunction(){wx.showOptionMenu();};//8.3批量隐藏菜单项document.querySelector('#hideMenuItems').onclickfunction(){wx.hideMenuItems({menuList:['menuItem:readMode',//阅读模式'menuItem:share:timeline',//分享到朋友圈'menuItem:copyUrl'//复制链接],success:function(res){alert('已隐藏“阅读模式”,“分享到朋友圈”,“复制链接”等按钮');},fail:function(res){alert(JSON.stringify(res));}});};//8.4批量显示菜单项document.querySelector('#showMenuItems').onclickfunction(){wx.showMenuItems({menuList:['menuItem:readMode',//阅读模式'menuItem:share:timeline',//分享到朋友圈'menuItem:copyUrl'//复制链接],success:function(res){alert('已显示“阅读模式”,“分享到朋友圈”,“复制链接”等按钮');},fail:function(res){alert(JSON.stringify(res));}});};//8.5隐藏所有非基本菜单项document.querySelector('#hideAllNonBaseMenuItem').onclickfunction(){wx.hideAllNonBaseMenuItem({success:function(){alert('已隐藏所有非基本菜单项');}});};//8.6显示所有被隐藏的非基本菜单项document.querySelector('#showAllNonBaseMenuItem').onclickfunction(){wx.showAllNonBaseMenuItem({success:function(){alert('已显示所有非基本菜单项');}});};//8.7关闭当前窗口document.querySelector('#closeWindow').onclickfunction(){wx.closeWindow();};//8界面操作接口结束------------------------------------------//9微信原生接口开始---------------------//9.1.1扫描二维码并返回结果document.querySelector('#scanQRCode0').onclickfunction(){wx.scanQRCode();};//9.1.2扫描二维码并返回结果document.querySelector('#scanQRCode1').onclickfunction(){wx.scanQRCode({needResult:1,desc:'scanQRCodedesc',success:function(res){alert(JSON.stringify(res));}});};//9微信原生接口结束---------------------});//初始化jsapi接口状态wx.error(function(res){alert("调用微信jsapi返回的状态:"+res.errMsg);});/script/body/html11.

上述jsp代码中有四个参数,这四个参数是成功调用微信jsapi的凭证,分别为appId(必填,公众号的唯一标识),timestamp(必填,生成签名的时间戳),nonceStr(必填,生成签名的随机串),signature(必填,签名),关于如何生成这四个参数,如果不知道的读者,请查看本页面左上角的菜单,里面有详细介绍,在这里不在累述。

12.

第六、上述代码运行后,效果如下

13.

最后一张效果图是扫描二维码后返回的结果数据

14.

转自:http://www.vxzsk.com/122.html

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎