#java #android #android-webview
Вопрос:
во-первых, я прочитал все ответы, написанные о вопросах, похожих на мой вопрос. Но ни одно из решений мне не помогло.
это мой код веб-представления
mWebView.loadUrl(siteUrl);
mWebView.getSettings().setUserAgentString(ua);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.setWebViewClient(new mWebViewClient());
я пытался использовать этот класс
https://gist.github.com/madeye/2297083
И я использовал этот код для установки прокси
ProxySettings.setProxy(getApplicationContext(), "x.x.x.x", 8080);
Я также тестировал этот класс
https://gist.github.com/WanghongLin/50032a4d3933960454a7
и
WebViewHttpProxy.setProxy(mWebView,"x.x.x.x",8080);
Но ни один из них не сработал. и прокси-сервер не был применен, когда я запускал приложение
Ответ №1:
Я не уверен, но я чувствую, что вы устанавливаете прокси-сервер после загрузки url ( webView.loadUrl
), поэтому он может не применяться
Ответ №2:
Очень легко установить прокси-сервер в вашем приложении Android webview ✅
скомпилируйте ‘androidx.webkit:webkit:1.3.0’ SetProxy(); просто загрузите перед загрузкой Url-адреса вашего веб-представления .
private void init() {
wv = findViewById(R.id.wv);
WebSettings webSettings = wv.getSettings();
webSettings.setSupportZoom(true);
webSettings.setJavaScriptEnabled(true);
wv.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm){
handler.proceed("userName", "password");
}
});
setProxy();
wv.loadUrl("https://www.google.com");
}
private void setProxy() {
ProxyConfig proxyConfig = new ProxyConfig.Builder()
.addProxyRule("123.123.123.123:1234")
.addDirect().build();
ProxyController.getInstance().setProxyOverride(proxyConfig, new Executor() {
@Override
public void execute(Runnable command) {
//do nothing
}
}, new Runnable() {
@Override
public void run() {
}
});
}
Наслаждаться