webview 获取html数据和js的传值
来源:互联网 发布:喷涂机器人编程 编辑:程序博客网 时间:2024/06/12 19:57
最近做webview,遇到2种需求,一种是在自己服务器上的HTML中获取数据,另一种是通过自己服务器上的HTML中的超链接跳到另一个站点的HTML中,并获取数据。
于是,总结了2种通过webview获取网页上的数据的方式:
第一种:简单点的,直接通过js调java,在调用方法的过程中将数据通过方法的参数传递给Android端,(前提:服务端有对应的faxun对象,而且调用的方法是showImages(String[] imgUrls))。
class MyJavaScriptInterface { MyJavaScriptInterface() { } /** * js调java,显示图片 * * @param imgUrls */ @JavascriptInterface public void showImages(String[] imgUrls) { LogUtils.i(TAG, "imgUrls = " + imgUrls[0]); NewsDetailWebviewActivity.this.imgUrls = imgUrls; }}...webView.addJavascriptInterface(new MyJavaScriptInterface(), "faxun");
第二种:有点复杂,通过webview注册一个本地接口后,然后通过java调js,拿到document对象后,解析HTML标签,然后数据会通过本地接口中的回调方法传递给Android端,(前提:HTML页面中的meta标签中有对应的reply_info名称和content属性,数据是封装在content里面的json格式的字符串)。
class MyWebClient extends WebViewClient {@Override public void onPageFinished(WebView view, String url) { view.loadUrl("javascript:window.getShareData.OnGetShareData(" + "document.querySelector('meta[name=\"reply_info\"]').getAttribute('content')" + ");"); super.onPageFinished(view, url); }}private class GetShareDataInterface { @JavascriptInterface public void OnGetShareData(String shareData) { if (null != shareData) { try { JSONObject shareJson = new JSONObject(shareData); title = shareJson.optString("title"); description = shareJson.optString("description"); imageUrl = shareJson.optString("imageUrl"); } catch (JSONException e) { e.printStackTrace(); } } } }.....webView.setWebViewClient(new MyWebClient());
其实,如果是普通的需求,两种方式都可以解决问题,但是如果是有些HTML没有做js调java,只是个普通的HTML,并且需要获取页面上的数据时,只能通过第二种方式来获取HTML上的数据了,比如获取HTML上的title等等。
0 0
- webview 获取html数据和js的传值
- webview 获取html数据和js的传值
- webview与js交互、webview返回上一层html、webview获取html的title、加载assets下的html文件
- 如何获取WebView的url和title和html
- iOS-获取webview的 url 和 title 和 html
- iOS-获取webview的 url 和 title 和 html
- ios webview 获取 网页的URL、title和HTML
- Android WebView 获取网页数据(html)
- Android WebView 获取网页数据(html)
- Android WebView 获取网页数据(html)
- android中webView和html中js的交互
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:*
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- jQuery事件总结
- 调试C++的动态库
- html中的javascript代码怎么写
- CTECH_EVS_AND_MVS_V6.6
- slidingmenu使用注意
- webview 获取html数据和js的传值
- java 用split分割的特殊字符
- Mongodb分片
- 简单阶乘
- 实现JAVA程序利用JDBC连接数据库的具体流程
- dedecms如何去除底部Power by DedeCms链接
- WebView的使用
- 51单片机自学笔记
- iis express 8 安装位置修改