世外天堂
>
微信JS-SDK和WeixinJSBridge的区别
官方解释 使用 WeixinJSBridge 预览图片
1 2 3 4 5 6 7 8 9 10 WeixinJSBridge.invoke('imagePreview', { current: 'http://inews.gtimg.com/newsapp_bt/0/1693121381/64 1', urls: [ 'https://img1.gtimg.com/10/1048/104857/1048 5731 _980x1200 _0.jpg', 'https://img1.gtimg.com/10/1048/104857/1048 5726 _980x1200 _0.jpg', 'https://img1.gtimg.com/10/1048/104857/1048 5729 _980x1200 _0.jpg' ] }, function(res) { console.log (res.err_msg) })
实际上,微信官方是没有对外暴露过如此调用的,此类 API 最初是提供给腾讯内部一些业务使用,很多外部开发者发现了之后,依葫芦画瓢地使用了,逐渐成为微信中网页的事实标准。2015年初,微信发布了一整套网页开发工具包,称之为 JS-SDK,开放了拍摄、录音、语音识别、二维码、地图、支付、分享、卡券等几十个API。给所有的 Web 开发者打开了一扇全新的窗户,让所有开发者都可以使用到微信的原生能力,去完成一些之前做不到或者难以做到的事情。
同样是调用原生的浏览图片,使用 JS-SDK 调用图片预览组件
1 2 3 4 5 6 7 8 9 10 11 wx.previewImage ({ current : 'https://img1.gtimg.com/10/1048/104857/10485726_980x1200_0.jpg' , urls : [ 'https://img1.gtimg.com/10/1048/104857/10485731_980x1200_0.jpg' , 'https://img1.gtimg.com/10/1048/104857/10485726_980x1200_0.jpg' , 'https://img1.gtimg.com/10/1048/104857/10485729_980x1200_0.jpg' ], success : function (res ) { console .log (res) } })
JS-SDK是对之前的 WeixinJSBridge 的一个包装,以及新能力的释放
其他 使用 WeixinJSBridge 拉起微信支付
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 onBridgeReady (field ) { WeixinJSBridge .invoke ('getBrandWCPayRequest' , { "appId" : field.appId , "timeStamp" : field.timeStamp .toString (), "nonceStr" : field.nonceStr , "package" : field.package , "signType" : field.signType , "paySign" : field.paySign , }, function (res ) { if (res.err_msg == "get_brand_wcpay_request:ok" ) { } else if (res.err_msg == "get_brand_wcpay_request:cancel" ) { } else if (res.err_msg == "get_brand_wcpay_request:fail" ) { } console .log (res); this .$router .push ({path : '/order/waiting' , query : {pay_no : field.pay_no }}) }); }, if (typeof WeixinJSBridge == "undefined" ) { if (document .addEventListener ) { document .addEventListener ('WeixinJSBridgeReady' , this .onBridgeReady (field), false ); } else if (document .attachEvent ) { document .attachEvent ('WeixinJSBridgeReady' , this .onBridgeReady (field)); document .attachEvent ('onWeixinJSBridgeReady' , this .onBridgeReady (field)); } } else { this .onBridgeReady (field); }
使用 JS-SDK 拉起微信支付
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 wx.chooseWXPay ({ timestamp : field.timeStamp , nonceStr : field.nonceStr , package : field.package , signType : field.signType , paySign : field.paySign , success : function (res ) { console .log (res); this .$router .push ({path : '/order/waiting' , query : {pay_no : field.pay_no }}) }, cancel : function (res ) { console .log (res) alert ('用户取消支付~' ) }, fail : function (res ) { console .log (res); this .$router .push ({path : '/order/waiting' , query : {pay_no : field.pay_no }}) } });