研究了一天jssdk本地调试,文献几乎都是15、16年写的,这可以算是远古时期的方案了,踩了巨多坑,后知后觉很多方案都已经失效了,而且雷同巨多,大概都是抄来抄去的;
根据大家的方案分为两类:
1、内网穿透,用ngrok反向代理,有免费的域名,但是不能固定,一个月只能更改三次JS接口安全域名,而且微信现在也不给通过了,收费的可以自定义子域名,但是有没有效就不晓得了,因为我想靠自己实现(穷)。
2、代理劫持访问地址(mac用Charles;win用Fiddler)
因为都说方案一最简单,就死磕方案一,浪费了很多时间,其实方案二才是最简单的,哎。Charles的教程蛮多的不说了,本文以Fiddler来实现。
1、https://www.telerik.com/download/fiddler下载fiddler
2、打开fiddler 选择-Tools-Option
3、关闭计算机防火墙
4、手机连上同网段的wifi
5、手机随便打开一个网页,可以在左边看到已经抓取到,点击对应的可以在右边看到设备是iphone了
6、配置FiddlerScript
7、找到这个方法 加入这条if语句(当域名是baidu.com的时候劫持并从定向到127.0.0.1:8080这个地址),这样就可以把你公众号JS接口安全域名写上去,但是请求的内容却是本地代码库,安全域通过了,至此你就可以在本地愉快的调试jssdk了
static function OnBeforeRequest(oSession: Session) { //语法类似js
if(oSession.host.toLowerCase()=="baidu.com"){ oSession["ui-color"] = "yellow"; oSession.host="127.0.0.1:8080"; }
}
8、这倒霉玩意终于出来了