• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Android-WebView设置代理及账号密码

android 搞代码 3年前 (2022-03-02) 52次浏览 已收录 0个评论

一.背景

很多小伙伴都会遇到公司的app须要通过外网拜访公司的内网服务,这个时候后盾同学就会配置一个代理服务器,app通过代理服务器拜访公司内网。出于平安的思考,还会对拜访代理服务器的申请进行身份验证。

那么Android的WebView如何设置代理,之前查了下网上的材料,大多是通过反射进行设置,然而Google官网曾经提供了不便的API供咱们应用了。所以,上面就简略介绍下WebView的代理的设置。

二.具体步骤

Android WebView设置代理须要应用ProxyConfig相干类,身份验证须要在WebViewClient的onReceivedHttpAuthRequest里进行。
首先,咱们在我的项目的build.gradle增加相干依赖。

implementation 'androidx.webkit:webkit:1.3.0'

设置代理具体代码如下:

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("http://www.uc123.com");
}

private void setProxy() {
    if (WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE)) {
        ProxyConfig proxyConfig = new ProxyConfig.Builder()
                .addProxyRule("111.123.321.121:1234")
                .addDirect().build();
        ProxyController.getInstance().setProxyOverride(proxyConfig, new Executor() {
            @Override
            public void execute(Runnable command) {
                //do nothing
            }
        }, new Runnable() {
            @Override
            public void run() {
                Log.w(TAG, "WebView代理扭转");
            }
        });
    }
}

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Android-WebView设置代理及账号密码
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址