本地调试js-sdk,因为初始化js-sdk的时还需要通过域名url才能生成签名,所以需要在本地模拟一个
域名进行调试。下面是详细的操作步骤:
- 首先需要让手机与调试的电脑位于同一个局域网
- 让电脑能够通过自己设置的域名访问调试本地页面,例如我的页面index是 http://127.0.0.1/basic.html 我想要通过电脑浏览器访问 http://baidu.com/basic.html 得到我的页面index
(1)修改hosts ,windows路径(C:\Windows\System32\drivers\etc),先用#把 127.0.0.1 localhost 注释掉,新建 127.0.0.1 baidu.com
(2)访问http://baidu.com/basic.html: - 下载安装charles,将手机的ip访问代理到电脑端:
(1)查看电脑ip:192.168.6.162
(2)打开charles,它默认通过8888端口代理,打开Proxy->Proxy Settings查看:
(3)打开手机的wifi设置代理ip和端口:
(4)手机访问:’http://baidu.com/basic.html' 如果手机能通过你的电脑的自定义域名进行访问,就证明代理成,向成功又迈进了一大步。
4. 引入微信js-sdk,生成token等信息进行初始化:
(1)进入个人的测试公众号(微信公众平台:,没有就用个人邮箱注册一个)
(2)切记,这里的域名绑定,是没有http://的
(3)记录下上图的appID和appsecret,用于获取token
(4)启动node.js,写一个获取noncestr(随机数)、timestamp(时间戳)和signature(签名)的服务端请求,用于页面初始化jsdk,附上官方文档
(4.1)access_token和ticket有效期7200秒,而且这个接口每天都有调用次数限制,所以需要缓存起来,等过期了再重新调用获取,这里只是演示本地开发,没有做缓存。生产环境切记缓存。
(4.2)接口代码:(请注意代码注释)
1 | const express = require('express') |
(5)页面记得引用wx-jsdk,进行页面初始化,点击login调起选择图片的js接口(单页应用的hash模式有个好处就是,你只需要在首页初始化一次js-sdk,就可以任意切换页面调用,因为初始化的时候是把#号及其后面的部分截取掉,而单页面的hash模式,页面切换只会改变#后面部分。)
1 | <!DOCTYPE html> |
(6)关注调试公众号:
(7)手机微信端调试(通过微信访问我们的项目):