1、需求背景
前几天接到一个这样的需求:在企业微信里面新增一个客户投诉的应用,对于客户来说,打开这个企微应用实际上是在微信中完成的,但我心想微信中不是有自带投诉的功能了嘛,怎么还要搞一个?然后产品经理就说,咱们搞一个假的,如果客户投诉的话,也是投诉到咱们自己的系统里面,然后产品给我看了一波原型图,好家伙,直接把微信投诉的页面给截屏下来了🤣,总体页面下面效果就是如下:
其实如果只需要常规上传图片方式的话,根本就不需要使用微信jssdk的功能,但既然产品都提出来了,为了使投诉页面更加像微信官方投诉页面,那就不能不使用jssdk了。
2、本地开发调试jssdk功能麻烦的地方
因为你使用了人家的SDK,人家在安全方面肯定是要考虑的,总不能想怎么调用就怎么调用吧😂,摘取微信开放文档的一句话:先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。简单来说,就是需要在你公众号后台配置一个域名,然后在这个域名下面,你才能使用jssdk的功能。但是大多数情况下,我们在都是在本地启动一个web服务进行开发,然后访问页面要么是localhost:8080要么是192.168.xx.xxx:8080,以此来进行调试。按照微信文档的说法,在微信开发者工具里面本地调试jssdk的功能显然不行,这里给出jssdk的官方说明文档。
3、准备工作
(1)在公众号后台已经配置好相关信息
(2)修改本地hosts文件,目的是将域名解析到本地
(3)下载安装nginx,监听80端口然后转发到你本地启动的项目
(4)如果前三步,你配置的都没有问题,那么现在你在浏览器地址栏输入第二步你配置的域名,你就能
通过域名,访问你本地的项目了,效果和你通过http://192.168.3.85:5000/访问一样,下面是截图。
提示:如果没有生效,请依次检查:(1)第二步修改的hosts文件有没有生效,在cmd窗口输入 ipconfig /flushdns 然后按enter键,这是用来刷新dns缓存,多来几次操作。(2)第三步修改nginx配置有没有问题,是不是少了分号或者输入的是中文分号,如果确定没有问题,在任务管理中结束nignx程序进程,重新启动一下nginx。
4、在微信开发者工具打开调试网页项目
到了这里本地调试微信jssdk功能算是完成了一大半了,但是有些jssdk功能需要在真机上调试,就比如说我这个需求,需要使用拍照上传图片,然而这是微信开发者工具是模拟不出来的,所以先不要慌,请接着往下看。
5、Fiddler代理实现真机调试微信JSSDK
(1)首先得下载安装Fiddler,这是我已经下载好的绿色Fiddler,解压之后可以直接使用,打开界面
如下:
(2)依次点击工具-->选项-->https,修改如下图所示:
注意:如果你勾选了"捕获HTTPS链接",那么你的浏览器是打不开网页的。
(3)再点击连接,勾选如下图所示:
注意这里的端口号得记住,默认是8888,打开Fiddler之后,如果8888端口被占用了,他会自动重新选择
(4)设置完成之后,需要重启一下软件。
(5)首先手机和电脑得接到同一个局域网,然后进入手机“设置”/WLAN/选择手机连接的wifi,选择
代理->手动,进入修改界面,按如图设置好代理服务器主机名(填写自己电脑IP)和端口(fiddler中
设置的端口8888,设置好后,点击保存,下图展示的是小米手机,代理配置,其他手机类似
(6)在手机上访问你在hosts文件里面配置的网址,这里我访问的是http://wxmp.xxx.com,得用http
协议访问
(7)查看视频真机演示效果
6、调试总结
1、本地调试的总体流程:修改本机hosts文件-->nginx做本地项目代理转发-->Fiddler作为代理-->
修改手机连接的无线网络代理
2、这个调试流程是自己结合网上方案,进行优化,总结出来的一套流程,网上大多数是使用测试号做
测试,写的都是残缺不全。