真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

webview獲取網(wǎng)頁(yè)上的數(shù)據(jù)

最近做webview,遇到2種需求,一種是在自己服務(wù)器上的HTML中獲取數(shù)據(jù),另一種是通過(guò)自己服務(wù)器上的HTML中的超鏈接跳到另一個(gè)站點(diǎn)的HTML中,并獲取數(shù)據(jù)。

創(chuàng)新互聯(lián)公司是專業(yè)的光山網(wǎng)站建設(shè)公司,光山接單;提供成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行光山網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

于是,總結(jié)了2種通過(guò)webview獲取網(wǎng)頁(yè)上的數(shù)據(jù)的方式:

第一種:簡(jiǎn)單點(diǎn)的,直接通過(guò)js調(diào)java,在調(diào)用方法的過(guò)程中將數(shù)據(jù)通過(guò)方法的參數(shù)傳遞給Android端,(前提:服務(wù)端有對(duì)應(yīng)的faxun對(duì)象,而且調(diào)用的方法是showImages(String[] imgUrls))。

class MyJavaScriptInterface { MyJavaScriptInterface() { } /** * js調(diào)java,顯示圖片 * * @param imgUrls */ @JavascriptInterface public void showImages(String[] imgUrls) { LogUtils.i(TAG, "imgUrls = " + imgUrls[0]); NewsDetailWebviewActivity.this.imgUrls = imgUrls; } } ... webView.addJavascriptInterface(new MyJavaScriptInterface(), "faxun");
第二種:有點(diǎn)復(fù)雜,通過(guò)webview注冊(cè)一個(gè)本地接口后,然后通過(guò)java調(diào)js,拿到document對(duì)象后,解析HTML標(biāo)簽,然后數(shù)據(jù)會(huì)通過(guò)本地接口中的回調(diào)方法傳遞給Android端,(前提:HTML頁(yè)面中的meta標(biāo)簽中有對(duì)應(yīng)的reply_info名稱和content屬性,數(shù)據(jù)是封裝在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"); p_w_picpathUrl = shareJson.optString("p_w_picpathUrl"); } catch (JSONException e) { e.printStackTrace(); } } } } ..... webView.setWebViewClient(new MyWebClient());

其實(shí),如果是普通的需求,兩種方式都可以解決問(wèn)題,但是如果是有些HTML沒(méi)有做js調(diào)java,只是個(gè)普通的HTML,并且需要獲取頁(yè)面上的數(shù)據(jù)時(shí),只能通過(guò)第二種方式來(lái)獲取HTML上的數(shù)據(jù)了,比如獲取HTML上的title等等。


本文名稱:webview獲取網(wǎng)頁(yè)上的數(shù)據(jù)
文章起源:http://weahome.cn/article/pdcdgo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部