91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

webview 獲取網頁上的數據

發布時間:2020-08-08 19:25:19 來源:網絡 閱讀:386 作者:養豬吧 欄目:移動開發

最近做webview,遇到2種需求,一種是在自己服務器上的HTML中獲取數據,另一種是通過自己服務器上的HTML中的超鏈接跳到另一個站點的HTML中,并獲取數據。

于是,總結了2種通過webview獲取網頁上的數據的方式:

第一種:簡單點的,直接通過js調java,在調用方法的過程中將數據通過方法的參數傳遞給Android端,(前提:服務端有對應的faxun對象,而且調用的方法是showImages(String[] imgUrls))。


<span >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");</span>
第二種:有點復雜,通過webview注冊一個本地接口后,然后通過java調js,拿到document對象后,解析HTML標簽,然后數據會通過本地接口中的回調方法傳遞給Android端,(前提:HTML頁面中的meta標簽中有對應的reply_info名稱和content屬性,數據是封裝在content里面的json格式的字符串
)。


<span >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()); </span>


其實,如果是普通的需求,兩種方式都可以解決問題,但是如果是有些HTML沒有做js調java,只是個普通的HTML,并且需要獲取頁面上的數據時,只能通過第二種方式來獲取HTML上的數據了,比如獲取HTML上的title等等。


向AI問一下細節
推薦閱讀:
  1. Android WebView詳解
  2. webview

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武穴市| 清镇市| 喀什市| 竹北市| 称多县| 资兴市| 阿城市| 阿瓦提县| 昭觉县| 北辰区| 鄂州市| 大化| 余姚市| 章丘市| 遂平县| 昂仁县| 喀喇| 道真| 盈江县| 连南| 麦盖提县| 邢台市| 京山县| 庆云县| 盱眙县| 扶余县| 肥东县| 鹤岗市| 深水埗区| 五家渠市| 陆河县| 祁门县| 资阳市| 淳安县| 玛曲县| 阜阳市| 仁寿县| 宁陕县| 达拉特旗| 兰考县| 思茅市|