带有代理的Flutter WebView

时间:2019-02-19 10:01:30

标签: android ios webview dart flutter

我正在尝试使用可加载带有代理页面的webview构建应用。我需要以编程方式更改代理(以设置IP,端口,用户名和密码)。

我有一个想法使用 WebviewScaffold (flutter_webview_plugin:^ 0.3.0 + 2),并像这样全局覆盖 HttpClient :< / p>

class CustomHttp extends HttpOverrides{

  @override
  HttpClient createHttpClient(SecurityContext securityContext){
    var client = new HttpClient();;
    client.findProxy = (Uri uri) {
      return 'PROXY XX.XX.XX.XX:{PORT};';
    };
    client.authenticate = (uri, scheme, realm) {
      client.addCredentials(uri, realm, new HttpClientBasicCredentials('username', 'password'));
    };
    return client;
  }

}

但是没有运气。看起来WebviewScaffold没有使用全局HttpClient。

有人知道我该怎么做吗?

1 个答案:

答案 0 :(得分:0)

可以通过为Flutter HTTP请求中的所有请求设置默认标头来完成此操作。

class MyHttpOverrides extends HttpOverrides {
  @override
  HttpClient createHttpClient(SecurityContext context) {
    return new MyHttpClient(super.createHttpClient(context));
  }
}

void main() {
  HttpOverrides.global = new MyHttpOverrides();
  runApp(MyApp());
}

您可以在HttpClient类中指定代理设置。