从android的webview访问JSON响应 [英] Access the JSON response from webview of android
问题描述
在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屋!