0

我正在开发一个严重依赖互联网内容的 Android 应用程序。在应用程序中,我有一个 WebView,可让用户浏览我们的安全网站。这很好用。然而有时我们需要在我们的原生应用程序中触发一个方法。

为此,我们需要在用户提交表单时拦截一个 POST 请求,查找特定参数,如果该参数存在,则在提交之前将另一个参数附加到 POST 请求。

我们的应用程序支持较旧的 API 很重要。至少 API 级别 8。在 iOS 中,这是小菜一碟。我们只是截获了 URL 请求并附加了我们的 url 编码参数。然而,在 Android 中,这要困难得多。在不对我们的网站进行任何更改的情况下,我无法找到拦截请求的方法。

我已经尝试覆盖 webviews loadUrl() 方法和 postUrl() 方法,但是当用户与 webview 中的 href 交互时,它们似乎没有被调用。我们要查找的具体参数可以来自不同的 url,因此覆盖 url 本身或硬编码表单名称是不够的。我希望有人能够帮助我解决这个问题。

4

2 回答 2

2

您可以使用 javascript 来拦截发布。由于您可以使用 javascript 验证所有输入,因此您还可以设置所有 key=value 对。javascript 本身只能执行一个 get 请求。如果不允许这样做,请使用 android javascript 桥接器来执行帖子。

于 2012-12-20T21:43:00.950 回答
-1

查看 WebView 的 WebViewClient http://developer.android.com/reference/android/webkit/WebView.html#setWebViewClient(android.webkit.WebViewClient )。使用它,您可以处理通过 webview 的所有请求。

于 2012-12-20T10:17:20.263 回答