猿问

WebView Android代理

WebView Android代理

我知道如何手动设置代理,并在我的WebView中使用它。

设置->无线网络->移动网络->接入点名称->telkila。现在输入代理服务器地址和端口(80)。WebView.enablePlatformNotiations();

但是我可以从代码中设置代理设置吗?所以我的用户不需要手动设置?

谢谢


交互式爱情
浏览 1011回答 3
3回答

不负相思意

我已经做了很多测试,我可以说以前的响应使用了基于android.net.http.RequestQueue从Android1.6到3.1,运行良好。但是在API上有一个代码重构,为了使它在Android3.2&4.x上工作,这里有一个解决方案: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 mWebViewCoreFieldIntance = getFieldValueSafely(mWebViewCoreField, oauthPage);   Class wvc = Class.forName("android.webkit.WebViewCore");   Field mBrowserFrameField = wvc.getDeclaredField("mBrowserFrame");   Object mBrowserFrame = getFieldValueSafely(mBrowserFrameField, mWebViewCoreFieldIntance);   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("my.proxy.com", 1234, null)); }catch (Exception ex){    }享受
随时随地看视频慕课网APP

相关分类

Android
我要回答