WebView Android代理我知道如何手動設(shè)置代理,并在我的WebView中使用它。設(shè)置->無線網(wǎng)絡(luò)->移動網(wǎng)絡(luò)->接入點(diǎn)名稱->telkila。現(xiàn)在輸入代理服務(wù)器地址和端口(80)。WebView.enablePlatformNotiations();但是我可以從代碼中設(shè)置代理設(shè)置嗎?所以我的用戶不需要手動設(shè)置?謝謝
3 回答

慕雪6442864
TA貢獻(xiàn)1812條經(jīng)驗 獲得超5個贊
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){ }
- 3 回答
- 0 關(guān)注
- 528 瀏覽
添加回答
舉報
0/150
提交
取消