¿Cómo obtiene WebView el valor del elemento HTML? Solo se puede recuperar a través de JavaScript, luego a través de JS y luego pasar a la capa de Java a través de JavaScriptInterface. \ Al realizar la vista web, encontrará dos necesidades, una es obtener los datos en el HTML en su propio servidor y la otra es saltar al HTML de otro sitio web a través del hipervínculo en el HTML en su propio servidor y obtener el datos. . \ Entonces, se resumen dos métodos para obtener datos de páginas web a través de webview: \ El primero: relativamente simple, llama directamente a Java a través de js, y en el proceso de llamar al método, los datos se pasan al lado de Android a través de los parámetros de el método (requisito previo: hay un objeto faxun correspondiente en el lado del servidor y el método llamado es showImages (String [] imgUrls)). \class MyJavaScriptInterface {\x0d\x0d\ MyJavaScriptInterface() {\x0d\ }\x0d\x0d\ /**\x0d\ * js llama a java para mostrar@param imgUrls\x0d\ */\x0d\ @JavascriptInterface\x0d\ public void showImages(String[] imgUrls) {\x0d\ LogUtils.i(TAG, "imgUrls = " imgUrls[0]);\x0d\ NewsDetailWebviewActivity.this.imgUrls = imgUrls;\x0d\ }\x0d\\\\ x0d\...\x0d\webView.addJavascriptInterface(new MyJavaScriptInterface(), "faxun");\x0d\\\\x0d\ El segundo tipo: un poco más complicado, registrar una interfaz local a través de webview y luego depurar a través de java js para obtener el objeto del documento, analizar la etiqueta HTML y luego pasar los datos al lado de Android a través del método de devolución de llamada en la interfaz local (siempre que... ...): La metaetiqueta de la página HTML tiene el nombre de respuesta_info y el atributo de contenido correspondientes. Los datos están encapsulados en el contenido y son una cadena en formato json).
\x0d\\\\x0d\class MyWebClient extiende WebViewClient {\x0d\@Override\x0d\ public void onPageFinished(WebView view, String url) {\x0d\ view.loadUrl("javascript: window.getShareData.OnGetShareData("\ x0d\ "document.querySelector('meta[name=\"reply_info\"]').getAttribute(' content')") ");"); super.onPageFinished(view, url); x0d\private class GetShareDataInterface {\x0d\ @ JavascriptInterface\x0d\ public void OnGetShareData(String shareData) {\x0d\ if (null != try {\x0d\ JSONObject shareJson = new JSONObject(shareData);\x0d\ title = shareJson .imageUrl = shareJson.optString("imageUrl"); (x0d\ descripción = shareJson.optString("descripción");). catch (JSONException e) {\x0d\ e. \ }\x0d\ }\x0d\\\\\x0d\ .....\webView.setWebViewClient(new MyWebClient()); (x0d\\x0d\ De hecho, si es un requisito normal, ambos métodos pueden Pregunta resuelta, pero si se trata de HTML sin ajustes de JS y Java, es simplemente HTML normal, y cuando necesita obtener datos en la página, solo puede usar la segunda forma de obtener los datos en HTML, como obtener el título en HTML, etc., etc.