赞
踩
调用微信SDK前置条件
根据官方文档,前端在使用微信的接口前要先进行配置,配置信息得从后端获取,后端在计算signature时需要前端传入当前页面的URL,开发者要在公众平台设置JS SDK安全域名,在这个域名下才能使用微信JS SDK,所以前端需要满足下面两个条件才能成功调用JS SDK
参考此文章
我们要做的就是让指定域名映射到本地,然后转发给开发服务器
$ ping testwx.test.com
下面就是我们需要的ip
dev: {
// Paths
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {
'/api': {
target: 'http://' + 刚才获取到的ip,
changeOrigin: true,
pathRewrite: {
'^/api': '/'
}
}
},
我们要做的就是让指定域名映射到本地,然后转发给开发服务器,主要就是修改host文件。假设在公众平台设置的JS SDK安全域名为testwx.test.com
$ sudo vim /etc/host
# 在host文件中添加以下内容
# 127.0.0.1 testwx.test.com
$ lsof -i -P -n | grep LISTEN
ss-local 3065 admin 6u IPv4 0xa8ba2df099418f61 0t0 TCP 127.0.0.1:1086 (LISTEN)
redis-ser 3079 admin 4u IPv4 0xa8ba2df09adbcc39 0t0 TCP 127.0.0.1:6379 (LISTEN)
privoxy 3085 admin 3u IPv4 0xa8ba2df09adbd531 0t0 TCP 127.0.0.1:8118 (LISTEN)
privoxy 3085 admin 4u IPv4 0xa8ba2df09b378341 0t0 TCP *:8118 (LISTEN)
postgres 3098 admin 6u IPv4 0xa8ba2df09adbba49 0t0 TCP 127.0.0.1:5432 (LISTEN)
# 转发80端口到8080端口
$ echo " rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080" | sudo pfctl -ef -
# 查看当前端口转发规则
$ sudo pfctl -s nat
# 移除端口转发规则,不必执行
# sudo pfctl -F all -f /etc/pf.conf
devServer: {
...,
disableHostCheck: true
}
如果出现报错
根据报错提示
在webpack 5 中disableHostCheck应该被遗弃了
查看文档了解到需将 disableHostCheck:true
替换为
devServer: {
...,
historyApiFallback: true,
allowedHosts: “all”,
}
现在就可以Mac的微信开发者工具中调试JSSDK了,在地址栏输入:testwx.test.com,就会将请求转发给本地开发服务器了
这样就可以成功通过安全域名访问到本地vue代码,并顺利通过后台获取到微信JS SKD需要的配置数据,此时已经可以通过微信开发工具使用调试了
有部分功能(例如扫一扫,录音等)需要在手机端调试,则需要在手机端的微信中通过安全域名访问本地代码,微信中访问上面配置的安全域名,会无法访问
yarn run dev --host 0.0.0.0
这样处于同一个网段(PS:连同一个WiFi)的设备都可以访问本地的vue项目了
参考此文章
需要在手机端调试,我们可以通过用fiddler连接手机来抓接口
现在在手机端就可以通过testwx.test.com访问到本地vue项目,并且可以在fiddler中看到对应的接口请求,就可以愉快得调用微信的JS SDK了,
注意:如果手机端开启了代理,则需要打开fiddler才能访问,不用fiddler的话,需要把手机端代理关掉才能访问本地项目的页面
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。