Android - 如何在 API 级别 4 上拦截 android WebViewClient 中的表单 POST [英] Android - how to intercept a form POST in android WebViewClient on API level 4

查看:32
本文介绍了Android - 如何在 API 级别 4 上拦截 android WebViewClient 中的表单 POST的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个 WebViewClient 附加到我的 WebView 像这样:

I have a WebViewClient attached to my WebView like so:

webView.setWebViewClient(new MyWebViewClient());

这是我对 MyWebViewClient 的实现:

private class MyWebViewClient extends WebViewClient {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
      webView.loadUrl(url);
      return true;
    }    
}

我给 WebView 一个 URL 以通过 loadUrl() 加载.如果我在页面中有一个链接 (a href...),我的 shouldOverrideUrlLoading 方法被调用,我可以拦截链接点击.

I give the WebView a URL to load via loadUrl(). If I have a link (a href...) in the page, my shouldOverrideUrlLoading method is called and I can intercept the link click.

但是,如果我有一个方法为 POST 的表单,则不会调用 shouldOverrideUrlLoading 方法.

However, if I have a form whose method is POST, the shouldOverrideUrlLoading method is not called.

我在这里发现了一个类似的问题:http://code.google.com/p/android/issues/detail?id=9122 似乎建议在我的 WebView 中覆盖 postUrl.但是,此 API 仅从 API 级别 5 开始可用.

I noticed a similar issue here: http://code.google.com/p/android/issues/detail?id=9122 which seems to suggest overriding postUrl in my WebView. However, this API is only available starting from API level 5.

如果我处于 API 级别 4,我该怎么办?有没有其他方法可以拦截表单帖子?

What can I do if I'm on API level 4? Is there any other way to intercept form posts?

推荐答案

这是一个已知问题,shouldOverrideUrlLoading 不捕获 POST.请参阅 http://code.google.com/p/android/issues/detail?id=9122 了解详情.

This is known issue, that shouldOverrideUrlLoading don't catch POST. See http://code.google.com/p/android/issues/detail?id=9122 for details.

使用获取!我个人尝试使用 POST,因为我预计 GET 参数(即 URL 的长度)有一些限制,但我只是成功地通过本地 GET 传递了 32000 个字节,没有任何问题.

Use GET! I personally tried using POST, because I expected some limitation of GET parameters (i.e. length of URL), but I just successfully passed 32000 bytes through GET locally without any problems.

这篇关于Android - 如何在 API 级别 4 上拦截 android WebViewClient 中的表单 POST的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆