【问题标题】:How to get POST parameters from android webview's URL in onPageStart() method如何在 onPageStart() 方法中从 android webview 的 URL 获取 POST 参数
【发布时间】:2017-08-29 03:28:10
【问题描述】:

我正在为 Android 和 iPhone 制作一个 webview 应用程序。

在 Android 中我面临一个问题

我有一个像这样的自定义 WebviewClient 的 webview

webView.setWebViewClient(new MyWebViewClient());

这是我的自定义 WebviewClient 类

private class MyWebViewClient extends WebViewClient {

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {

        if (url.equalsIgnoreCase(MyConstants.fb_share)) {
            view.stopLoading();

                            //Want to get POST parameters embedded with the url. 

            Intent i = new Intent(context, FaceBookActivity.class);
            i.putExtra("FB_SHARE_URL", url);
            startActivity(i);

        }

        super.onPageStarted(view, url, favicon);
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {

        loadedUrl = url;

        return super.shouldOverrideUrlLoading(view, url);
    }

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


    }
}

注意: 在 onPageStarted() 方法中,我正在开始另一个活动。但在这里我想用 URL 获取 POST 参数。有什么方法可以获取嵌入URL的post参数吗?

在 iPhone 中,这可以获取 POST url 参数。

【问题讨论】:

    标签: android android-webview http-post


    【解决方案1】:

    使用 Android WebView 无法执行此操作(查看 POST 数据),因为它不允许您查看发送到服务器的数据。您可以使用 JavaScript 重新编写页面,找出输入字段的值(或将方法更改为 GET),但使用任何一种方法处理图像可能都不是一件容易的事。

    由于您编写了“嵌入 url 的 POST 参数”,我想知道表单是否使用 method='get',在这种情况下,请查看以下答案:Parsing query strings on Android

    另外,不要从onPageStarted 调用stopLoading,那会以比赛告终。为此使用shouldOverrideUrlLoading(只需从那里返回true,而不是调用stopLoading)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-13
      • 1970-01-01
      • 1970-01-01
      • 2015-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多