小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。
# 小程序技术发展史小程序并非凭空冒出来的一个概念。当微信中的 WebView 逐渐成为移动 Web 的一个重要入口时,微信就有相关的 JS API 了。
代码清单1-1 使用 WeixinJSBridge 预览图片
WeixinJSBridge.invoke('imagePreview', {current: 'http://inews.gtimg.com/newsapp_bt/0/1693121381/641',urls: [ // 所有图片的URL列表,数组格式'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']}, function(res) {console.log(res.err_msg)})代码1-1是一个调用微信原生组件浏览图片的JS API,相比于额外引入一个JS图片预览组件库,这种调用方式显得非常简洁和高效。
实际上,微信官方是没有对外暴露过如此调用的,此类 API 最初是提供给腾讯内部一些业务使用,很多外部开发者发现了之后,依葫芦画瓢地使用了,逐渐成为微信中网页的事实标准。2015年初,微信发布了一整套网页开发工具包,称之为 JS-SDK,开放了拍摄、录音、语音识别、二维码、地图、支付、分享、卡券等几十个API。给所有的 Web 开发者打开了一扇全新的窗户,让所有开发者都可以使用到微信的原生能力,去完成一些之前做不到或者难以做到的事情。
同样是调用原生的浏览图片,调用方式如代码清单1-2所示。
代码清单1-2 使用 JS-SDK 调用图片预览组件
wx.previewImage({ current: 'https://img1.gtimg.com/10/1048/104857/10485726_980x1200_0.jpg', urls: [ // 所有图片的URL列表,数组格式'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 的一个包装,以及新能力的释放,并且由对内开放转为了对所有开发者开放,在很短的时间内获得了极大的关注。从数据监控来看,绝大部分在微信内传播的移动网页都使用到了相关的接口。
JS-SDK 解决了移动网页能力不足的问题,通过暴露微信的接口使得 Web 开发者能够拥有