中央已经研究决定了,我们要开发一个微信APP,要开发微信那就要有完备的本地环境,我总结了一下,一个比较完备的微信开发环境大概能满足开发者以下需求:
1.开发完成后能在电脑上调试前端页面
2.能用电脑对手机在微信的环境下进行调试
3.外部的移动设备(与开发的电脑不处于同一局域网也没有调试线相连的)也能访问部署在本机的微信APP网页进行测试
清楚了需求就开始找解决方案,官方的开发者文档显然是首要去处,在微信公众平台开发者文档的一大发现就是微信提供web开发者工具,能轻易地满足开发者上述1,2需求,使用也很简单,于是直接装了个,打开是这样的:
图一说明很清楚,集成的Google调试工具可以让我们在开发工具中直接调试JS,此外还可以显示JSSDK相关权限的请求情况(图二),【移动调试】tab中可以在安卓或ios真机上进行调试,很好很强大。
首先当然是想在本地调试,本地服务器还没有搭好,这倒很方便,下了一个XAMPP,开好Apache在80端口,这时候在微信开发者工具里访问localhost:80,就可以调试微信网页了。
加了一个微小的按钮,在开发者工具里打开,这样下来还不到一小时,进展很顺利。接下来就是JSSDK的调试了,于是又加了一个微小的按钮并实现wx.config接口去申请权限,但是失败了。
这当然是有原因的,因为申请JSSDK的url必须是一个外网地址,用本地的ip去申请是不能通过的。问题是项目还没有部署到服务器,并没有外网地址,如果每一个页面都发到服务器上调试是一件极其麻烦的事情。这个时候就需要一件神器了,这件神器的名字叫ngrok。
这个神器简单来说就是一个反向代理的工具,可以用来做内网穿透,比如我现在就要用ngrok把我的localhost映射到一个外网地址,这样他人在访问外网地址时,效果就和在我本机访问localhost一样了。这个姿势虽然有点牛刀杀鸡的感觉,但确实是一个好选择。
到ngrok官网去注册,发现它已经是付费软件了,不交钱只能生成临时的url,这怎么行,于是找来国内开发者社区免费提供的ngrok,网址在这里。
下载好后用cmd进入ngrok.exe所在目录,这个版本的ngrok不需要登录用户了,直接就开始配置,输入命令:
ngrok -config=ngrok.cfg -subdomain shacuswechat 80
看,现在就给localhost:80分配好了一个外网地址叫http://shacuswechat.tunnel.2bdata.com的,还可以实时监控发来的请求。这样,申请JSSDK权限时就可以用这个外网地址去生成签名,其它设备访问这个外网地址也能对我本地的代码进行测试。