Charles 是一个特别优秀的代理工具,可以方便的实现本地文件代理,方便我们来调试远程的网址,下面就来介绍一下怎么配置 Charles 替换远程 JS。
启用 Tools > Map Local
如果不希望 webView 缓存网页的 JS,css 等,可以开启 Tools > No Cacheing, 这样每次都会重新请求这些资源。
添加规则 Add
我们以替换当前博客的某个 JS 文件为例,例如 http://apkfuns.com/assets/js/min/index.min.js?v=8478662b4d 我们该怎么写规则呢?
* 是通配符, Local path 是映射到本地的 JS 文件路径,在原内容基础下增加了 alert,内容如下:
function extractDomain(i) {
var o;
return o = i.indexOf("://") > -1 ? i.split("/")[2] : i.split("/")[0], o = o.split(":")[0], o = o.replace("www.", ""), o = o.replace(".com", "")
}
$(document).ready(function () {
alert("hook!");
Pace.on("done", function (i) {
}), (new WOW).init(), $(".site-main").fitVids(), $("#toggle").click(function () {
$(this).toggleClass("active"), $("#overlay").toggleClass("open"), $("body").toggleClass("no-scroll")
}), "undefined" != typeof social_icons ? $.each(social_icons, function (i, o) {
$(".social-navigation ul").append('<li><a href="' + o + '">' + extractDomain(o) + "</a></li>")
}) : $(".social-navigation").remove(), $(".scroll-top").click(function () {
return $("html, body").animate({scrollTop: 0}, 600), !1
})
});
保存后再次访问 apkfuns.com 就会弹出 alert 的内容了
设置本地 chrome 代理
- 切记关闭本地其他代理,如 shadowsocks 等
- 开启 proxy > Start Recording
- 开启 proxy > macOS Proxy