如何在棒棒糖 5.0 上的 Web 视图中设置代理



我的应用程序有一个WebView,我想将其配置为使用代理。显然,Android没有可以用来实现这一目标的API,但我在StackOverflow上找到了一些文章,展示了如何通过反射来做到这一点:

  • 网络视图安卓代理
  • Android
  • WebView 在 Android-L 上以编程方式设置代理

不幸的是,第一篇文章中的方法仅适用于KitKat 4.4,而Android L/5.0的方法需要设置应用程序范围的代理设置(通过System.setProperty("http.proxyHost", ...)System.setProperty("http.proxyPort", ...)这不仅仅影响WebView。例如,Apache HTTP客户端似乎也选择了这些设置。

有没有办法只为 WebView 设置代理设置,而不会影响应用的其他组件?

在 API>21 棒棒糖中,它不允许在 Web 视图中设置代理设置。这些方法已被删除。

因此,现在唯一的方法是设置您提到的系统范围的代理,然后清除onPause代理并onStop活动方法。清除可以通过以下方式完成:

System.clearProperty("http.proxyHost");
System.clearProperty("http.proxyPort");

希望对您有所帮助。

最新更新