V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
qw30716
V2EX  ›  Android

Android 通过代码设置 webview 代理显示成功,但是不生效,有人遇到这种问题吗

  •  
  •   qw30716 · Apr 17, 2017 · 13292 views
    This topic created in 3306 days ago, the information mentioned may be changed or developed.
    private static boolean setProxyICS(Context context, String host, int port) {
    try {
    Class jwcjb = Class.forName("android.webkit.JWebCoreJavaBridge");
    Class params[] = new Class[1];
    params[0] = Class.forName("android.net.ProxyProperties");
    Method updateProxyInstance = jwcjb.getDeclaredMethod("updateProxy", params);

    Class wv = Class.forName("android.webkit.WebView");
    Field mWebViewCoreField = wv.getDeclaredField("mWebViewCore");
    Object mWebViewCoreFieldInstance = getFieldValueSafely(mWebViewCoreField, context);

    Class wvc = Class.forName("android.webkit.WebViewCore");
    Field mBrowserFrameField = wvc.getDeclaredField("mBrowserFrame");
    Object mBrowserFrame = getFieldValueSafely(mBrowserFrameField, mWebViewCoreFieldInstance);

    Class bf = Class.forName("android.webkit.BrowserFrame");
    Field sJavaBridgeField = bf.getDeclaredField("sJavaBridge");
    Object sJavaBridge = getFieldValueSafely(sJavaBridgeField, mBrowserFrame);

    Class ppclass = Class.forName("android.net.ProxyProperties");
    Class pparams[] = new Class[3];
    pparams[0] = String.class;
    pparams[1] = int.class;
    pparams[2] = String.class;
    Constructor ppcont = ppclass.getConstructor(pparams);
    updateProxyInstance.invoke(sJavaBridge, ppcont.newInstance(host, port, null));
    return true;
    } catch (Exception ex) {
    return false;
    }
    }
    3 replies    2017-04-18 10:07:31 +08:00
    gouchaoer
        1
    gouchaoer  
       Apr 17, 2017
    我艹我也遇到这个问题,不过我是 ios 的 uiwebview 没法设置代理
    gouchaoer
        2
    gouchaoer  
       Apr 17, 2017
    你搞这个不会是为了搞用户 cookie 吧
    qw30716
        3
    qw30716  
    OP
       Apr 18, 2017
    @gouchaoer 我是通过设置代理拦截网络请求,但是 webview 代理感觉内存泄露了,没有生效
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   868 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 149ms · UTC 21:36 · PVG 05:36 · LAX 14:36 · JFK 17:36
    ♥ Do have faith in what you're doing.