3

标题说明了一切。我想知道一切WebView要求。一些奇怪的限制,比如不知道 XHR POST 是不可接受的。换句话说,像 iOS 这样的东西在NSURLProtocol. 那是应用程序范围的钩子。我不需要这种级别的控制,WebView-instance-specific 钩子就足够了。现在,我知道 Android 上没有类似的东西。我知道shouldOverrideUrlLoadingand shouldInterceptRequest,但它在很大程度上无法使用。我需要了解请求(方法、HTTP 版本、标头,你知道),而不仅仅是 URL 字符串。此外,拦截是尴尬的同步。如果发生什么shouldInterceptRequest呼叫被阻止,因为我需要向不同的服务器询问相关资源?在我看来,它只是为本地资源缓存而设计的。

另一方面,我愿意为这个问题抛任何东西。某种本机库,挂钩到低级内部?在现有项目(pwnallmogoweb)的帮助下扩展 Chromium 接口?反映到现有的 webkit 类私有?特定于应用程序的代理?任何见解表示赞赏。我已经阅读了两打现有的 SO 问题。他们都建议部分破解(例如使用 JavaScript 解决 XHR POST 缺陷),或者经常完全没有响应。

4

2 回答 2

1

尝试检查:

https://github.com/ac-pm/Inspeckage

它需要 Xposed 和 root 访问权限才能工作。我已经能够看到来自应用程序的 WebView 请求。我正在弄清楚如何使用 Python 的 requests 模块重新创建它们。

希望有帮助。

于 2020-02-16T20:18:31.413 回答
0

如果我了解您的目标 - 请尝试:

WebView.setWebContentsDebuggingEnabled(true);

打开 Chrome 并转到 url chrome://inspect/#devices

详情:

https://developers.google.com/web/tools/chrome-devtools/remote-debugging

https://developers.google.com/web/tools/chrome-devtools/remote-debugging/webviews

于 2020-02-16T21:32:37.343 回答