如何在onPageStart()方法中从android webview的URL获取POST参数

时间:2014-01-13 11:18:01

标签: android android-webview http-post

我正在为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嵌入帖子参数?

在iPhone中,可以获取POST网址参数。

1 个答案:

答案 0 :(得分:2)

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

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

此外,请勿从stopLoading拨打onPageStarted,这将在比赛中结束。使用shouldOverrideUrlLoading(只需从那里返回true而不是调用stopLoading)。