记录HTTP请求从嵌入式Android WebView开始和结束

sha*_*ver 6 performance android webview android-webview

我正在寻找一种方法来记录嵌入式webview所做的请求和开始/结束时间.到目前为止,除了生根电话和运行tcpdump之外,我无法找到办法.这对我有用,但我需要在现场运行,所以这不是真的可行.有很多方法可以记录URL和开始时间,但我看不到完成(或奖励,完整的响应元数据).

如果我可以包装当前请求,那么shouldLoadResource可以工作,但是我必须自己使用HTTP支持来获取它以便整体返回它,因为没有足够的API暴露给完全转发到内部请求.(我不想出于多种原因这样做,包括设备上的webview不使用与HTTP类相同的网络堆栈,因为它会改变子资源的时间.)

我一直试图找到打开chromium_net调试标志的方法来做到这一点,但我无法弄清楚如何在WebView或系统属性的上下文中这样做.

我真的不想运送我自己的webcore来做这件事,但如果需要必须......

Tor*_*rid 0

在这种情况下,您还可以添加 WebViewClient(请参阅http://developer.android.com/reference/android/webkit/WebViewClient.html)。这看起来像

WebView webView.setWebViewClient(new MyWebViewClient());

.
.
.

public class MyWebViewClient extends WebViewClient 
{
  @Override
  public boolean shouldOverrideUrlLoading(WebView view, String url) 
  {
    // Note time

    // Return false to say we want the WebView to handle the url.
    return false;
    }

  @Override 
  public void onPageFinished (WebView view, String url)
  {
    super.onPageFinished(view, url);

    // Note time
  }
}
Run Code Online (Sandbox Code Playgroud)

请注意,shouldOverrideUrlLoading 和 onPageFinished 仅针对主框架调用 - 它们不会针对 iframe 或框架集调用。但这应该可以满足您的需要。