微信探究---JS篇

基于微信开发有段时间了,对于内嵌WebView的使用也颇有感受,今天心血来潮,获取了部分微信内部和WeixinJSBridge相关的JS代码,由于代码经过混淆处理,贴上来供大家一起研究

<!-- lang: js -->
WeixinJSBridge.finishLoading = function w(){
    r("weixin://webview/finishloading/");
};

WeixinJSBridge.invoke = function u(a, d, f){
    if(a && "string"===typeof a){
        "object"!==typeof d&&(d={});
        var b=(U++).toString();
        "function"===typeof f&&(G[b]=f);
        a={func:a, params:d};
        a[O]="call";a[D]=b;b=y.stringify(a);
        l.push(b);A.src=V+"://"+W
    }
};

WeixinJSBridge.call = function(){
            //和WeixinJSBridge.invoke相同
    if(a && "string"===typeof a){
        "object"!==typeof d&&(d={});
        var b=(U++).toString();
        "function"===typeof f&&(G[b]=f);
        a={func:a, params:d};
        a[O]="call";a[D]=b;b=y.stringify(a);
        l.push(b);A.src=V+"://"+W
    }
};

WeixinJSBridge.on = function z(a, d){
    a && "string"===typeof a&&"function"===typeof d&&(E[a]=d);
};

WeixinJSBridge.env = function (a){
    return v[a];
};

WeixinJSBridge.log = function B(a){
    for(var d=[],f=0;f)//未获取完整
};

WeixinJSBridge._fetchQueue = function(){
    var a=y.stringify(l);
    l=[];
    return a;
};

WeixinJSBridge._handleMessageFromWeixin = function(a){
    switch(a[O]){
        case "callback":
            if ("string"===typeof a[D]&&"function"===typeof G[a[D]]){
                var d=G[a[D]](a.__params);
                delete G[a[D]];
                return y.stringify(d)
            }
            return y.stringify({__err_code:"cb404"});
        case "event":
            return "string"===typeof a.__event_id] ? (d=E[a.__event_id](a.__params), y.stringify(d)) : y.stringify({__err_code:"ev404"})
    }
};

你可能感兴趣的:(微信,WeixinJSBridge)