从android的webview访问JSON响应 [英] Access the JSON response from webview of android

查看:1101
本文介绍了从android的webview访问JSON响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Android上,我有一个 webView 。我正在加载 url 。首先,我得到一个 Facebook 的登录页面,在填写登录详细信息后,它在同一<$上给我一个 JSON响应 c $ c> webView 。

On Android, I have a webView. I'm loading a url on it. Firstly, I get a login page of Facebook and after filling login details it gives me a JSON Response on same webView.

我正在使用此代码加载 URL 但现在我不知道如何在字符串中获得 JSON响应我完成的内容 url

I'm using this code to load that URL but now I don't know how to get that JSON Response in a string what I got on finished of that url.

WebViewClient yourWebClient = new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        return false;
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        wb.loadUrl("javascript:window.HTMLOUT.processHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
    }
};
wb = (WebView) findViewById(R.id.webview);
wb.getSettings().setJavaScriptEnabled(true);
wb.getSettings().setSupportZoom(true);
wb.getSettings().setBuiltInZoomControls(true);
wb.setWebViewClient(yourWebClient);
wb.loadUrl("http://pqrs.abcde.com/facebook");

JSON响应的格式为:

{"status":"success","msg":"You have successfully logged in."}


推荐答案

构建一个名为MyJavaScriptInterface的类。和WebView的MyJavaScriptInterface。

Build a class called MyJavaScriptInterface. And MyJavaScriptInterface to WebView.

    WebViewClient yourWebClient = new WebViewClient() {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            return false;
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            wb.loadUrl("javascript:HtmlViewer.showHTML" +
                    "('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');");
        }
    };
    wb = (WebView) findViewById(R.id.webview);
    wb.getSettings().setJavaScriptEnabled(true);
    wb.getSettings().setSupportZoom(true);
    wb.getSettings().setBuiltInZoomControls(true);
    wb.setWebViewClient(yourWebClient);
    wb.loadUrl("http://pqrs.abcde.com/facebook");
    wb.addJavascriptInterface(new MyJavaScriptInterface(this), "HtmlViewer");







    class MyJavaScriptInterface {

    private Context ctx;
    MyJavaScriptInterface(Context ctx) {
        this.ctx = ctx;      
    }

    @JavascriptInterface
    public void showHTML(String html) {
        System.out.println(html);
    }

}






注意:从你需要删除wb.loadUrl中的窗口(javascript:...);.
和public void showHTML之前的@JavascriptInterface。


Note: From you are required to remove window in wb.loadUrl("javascript:...");. And @JavascriptInterface before "public void showHTML".

您可以在html参数中从showHtml(..)获取内容。

You can get content from showHtml(..) in html parameter.

这篇关于从android的webview访问JSON响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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