Hướng dẫn get html from webview android - lấy html từ webview android

Phương pháp nào đơn giản nhất để lấy mã HTML từ WebView? Tôi đã thử một số phương thức từ Stackoverflow và Google, nhưng không thể tìm thấy một phương thức chính xác. Vui lòng đề cập đến một cách chính xác.

public class htmldecoder extends Activity implements OnClickListener,TextWatcher
{
TextView txturl;
Button btgo;
WebView wvbrowser;
TextView txtcode;
ImageButton btcode;
LinearLayout llayout;
int flagbtcode;
public void onCreate(Bundle savedInstanceState)
{
            super.onCreate(savedInstanceState);
                setContentView(R.layout.htmldecoder);

    txturl=(TextView)findViewById(R.id.txturl);

    btgo=(Button)findViewById(R.id.btgo);
    btgo.setOnClickListener(this);

    wvbrowser=(WebView)findViewById(R.id.wvbrowser);
    wvbrowser.setWebViewClient(new HelloWebViewClient());
    wvbrowser.getSettings().setJavaScriptEnabled(true);
    wvbrowser.getSettings().setPluginsEnabled(true);
    wvbrowser.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    wvbrowser.addJavascriptInterface(new MyJavaScriptInterface(),"HTMLOUT");
    //wvbrowser.loadUrl("http://www.google.com");
    wvbrowser.loadUrl("javascript:window.HTMLOUT.showHTML(''+document.getElementsByTagName('html')[0].innerHTML+'');");


    txtcode=(TextView)findViewById(R.id.txtcode);
    txtcode.addTextChangedListener(this);

    btcode=(ImageButton)findViewById(R.id.btcode);
    btcode.setOnClickListener(this);

    }

public void onClick(View v)
{
    if(btgo==v)
    {
        String url=txturl.getText().toString();
        if(!txturl.getText().toString().contains("http://"))
        {
            url="http://"+url;
        }
        wvbrowser.loadUrl(url);
        //wvbrowser.loadData("
","text/html","utf-8"); } else if(btcode==v) { ViewGroup.LayoutParams params1=wvbrowser.getLayoutParams(); ViewGroup.LayoutParams params2=txtcode.getLayoutParams(); if(flagbtcode==1) { params1.height=200; params2.height=220; flagbtcode=0; //txtcode.setText(wvbrowser.getContentDescription()); } else { params1.height=420; params2.height=0; flagbtcode=1; } wvbrowser.setLayoutParams(params1); txtcode.setLayoutParams(params2); } } public class HelloWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } /*@Override public void onPageFinished(WebView view, String url) { // This call inject JavaScript into the page which just finished loading. wvbrowser.loadUrl("javascript:window.HTMLOUT.processHTML(''+document.getElementsByTagName('html')[0].innerHTML+'');"); }*/ } class MyJavaScriptInterface { @SuppressWarnings("unused") public void showHTML(String html) { txtcode.setText(html); } } public void afterTextChanged(Editable s) { // TODO Auto-generated method stub } public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } public void onTextChanged(CharSequence s, int start, int before, int count) { wvbrowser.loadData("
","text/html","utf-8"); } }

Hướng dẫn get html from webview android - lấy html từ webview android

Hope4You

1.9174 Huy hiệu vàng21 Huy hiệu bạc44 Huy hiệu đồng4 gold badges21 silver badges44 bronze badges

Đã hỏi ngày 20 tháng 11 năm 2011 lúc 10:36Nov 20, 2011 at 10:36

0

Trên thực tế câu hỏi này có nhiều câu trả lời. Đây là 2 người trong số họ:

  • Điều này đầu tiên gần giống như của bạn, tôi đoán chúng ta đã nhận được nó từ cùng một hướng dẫn.

public class TestActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webview);
        final WebView webview = (WebView) findViewById(R.id.browser);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.addJavascriptInterface(new MyJavaScriptInterface(this), "HtmlViewer");

        webview.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                webview.loadUrl("javascript:window.HtmlViewer.showHTML" +
                        "(''+document.getElementsByTagName('html')[0].innerHTML+'');");
            }
        });

        webview.loadUrl("http://android-in-action.com/index.php?post/" +
                "Common-errors-and-bugs-and-how-to-solve-avoid-them");
    }

    class MyJavaScriptInterface {

        private Context ctx;

        MyJavaScriptInterface(Context ctx) {
            this.ctx = ctx;
        }

        public void showHTML(String html) {
            new AlertDialog.Builder(ctx).setTitle("HTML").setMessage(html)
                    .setPositiveButton(android.R.string.ok, null).setCancelable(false).create().show();
        }

    }
}

Bằng cách này, bạn lấy HTML thông qua JavaScript. Không phải là cách đẹp nhất nhưng khi bạn có giao diện JavaScript của mình, bạn có thể thêm các phương thức khác để sửa nó.


  • Một cách khác là sử dụng một httpclient như ở đó.

Tùy chọn bạn chọn cũng phụ thuộc, tôi nghĩ, vào những gì bạn dự định làm với HTML đã truy xuất ...

Đã trả lời ngày 20 tháng 11 năm 2011 lúc 11:41Nov 20, 2011 at 11:41

SephysephySephy

49.6K30 Huy hiệu vàng121 Huy hiệu bạc130 Huy hiệu đồng30 gold badges121 silver badges130 bronze badges

13

Trong KitKat trở lên, bạn có thể sử dụng phương thức

public class TestActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webview);
        final WebView webview = (WebView) findViewById(R.id.browser);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.addJavascriptInterface(new MyJavaScriptInterface(this), "HtmlViewer");

        webview.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                webview.loadUrl("javascript:window.HtmlViewer.showHTML" +
                        "(''+document.getElementsByTagName('html')[0].innerHTML+'');");
            }
        });

        webview.loadUrl("http://android-in-action.com/index.php?post/" +
                "Common-errors-and-bugs-and-how-to-solve-avoid-them");
    }

    class MyJavaScriptInterface {

        private Context ctx;

        MyJavaScriptInterface(Context ctx) {
            this.ctx = ctx;
        }

        public void showHTML(String html) {
            new AlertDialog.Builder(ctx).setTitle("HTML").setMessage(html)
                    .setPositiveButton(android.R.string.ok, null).setCancelable(false).create().show();
        }

    }
}
3 trên WebView

wvbrowser.evaluateJavascript(
        "(function() { return (''+document.getElementsByTagName('html')[0].innerHTML+''); })();",
         new ValueCallback() {
            @Override
            public void onReceiveValue(String html) {
                Log.d("HTML", html); 
                // code here
            }
    });

Xem câu trả lời này để biết thêm ví dụ

Đã trả lời ngày 16 tháng 8 năm 2015 lúc 22:30Aug 16, 2015 at 22:30

AkashakashAkash

12.1k1 Huy hiệu vàng23 Huy hiệu bạc19 Huy hiệu đồng1 gold badge23 silver badges19 bronze badges

7

Đối với Android 4.2, đừng quên thêm @javascriptinterface vào tất cả các chức năng JavaScript

Danronmoon

3.7145 huy hiệu vàng33 Huy hiệu bạc56 Huy hiệu đồng5 gold badges33 silver badges56 bronze badges

Đã trả lời ngày 27 tháng 3 năm 2013 lúc 15:35Mar 27, 2013 at 15:35

user1842354user1842354user1842354

5614 Huy hiệu bạc5 Huy hiệu Đồng4 silver badges5 bronze badges

1

Android Webview chỉ là một công cụ kết xuất khác hiển thị nội dung HTML được tải xuống từ máy chủ HTTP, giống như Chrome hoặc Firefox. Tôi không biết lý do tại sao bạn cần lấy trang được hiển thị (hoặc ảnh chụp màn hình) từ WebView. Trong hầu hết các tình huống, điều này là không cần thiết. Bạn luôn có thể nhận được nội dung HTML thô từ máy chủ HTTP trực tiếp.

Đã có những câu trả lời được đăng trên mạng về việc lấy luồng thô bằng cách sử dụng httpurlconnection hoặc httpclient. Ngoài ra, có một thư viện rất tiện dụng khi xử lý phân tích/quy trình nội dung HTML trên Android: JSoup, nó cung cấp API rất đơn giản để có được nội dung HTML Mẫu HTTP và cung cấp một biểu diễn trừu tượng của tài liệu HTML để giúp chúng tôi quản lý phân tích HTML không chỉ theo phong cách OO hơn nhưng cũng dễ dàng:

// Single line of statement to get HTML document from HTTP server.
Document doc = Jsoup.connect("http://en.wikipedia.org/").get();

Nó rất tiện dụng khi, ví dụ, bạn muốn tải xuống tài liệu HTML trước sau đó thêm một số CSS hoặc JavaScript tùy chỉnh cho nó trước khi chuyển nó cho WebView để kết xuất. Nhiều hơn nữa trên trang web chính thức của họ, đáng để kiểm tra nó.

Đã trả lời ngày 7 tháng 3 năm 2012 lúc 21:45Mar 7, 2012 at 21:45

Yorkwyorkwyorkw

40.7k10 Huy hiệu vàng116 Huy hiệu bạc130 Huy hiệu đồng10 gold badges116 silver badges130 bronze badges

1

Một điểm chạm tôi thấy rằng cần phải được đưa vào vị trí là "ẩn" đi trong cấu hình proguard. Mặc dù đầu đọc HTML gọi qua giao diện JavaScript rất tốt khi gỡ lỗi ứng dụng, nhưng điều này không còn hoạt động ngay khi ứng dụng được chạy qua Proguard, trừ khi hàm đọc HTML được khai báo trong tệp cấu hình proguard, như vậy:

-keepclassmembers class  {
    public *; 
}

Đã thử nghiệm và xác nhận trên Android 2.3.6, 4.1.1 và 4.2.1.

Đã trả lời ngày 13 tháng 1 năm 2013 lúc 19:17Jan 13, 2013 at 19:17

Android sẽ không cho phép bạn làm điều này cho những lo ngại về bảo mật. Một nhà phát triển độc ác có thể rất dễ dàng đánh cắp thông tin đăng nhập do người dùng nhập vào.

Thay vào đó, bạn phải bắt được văn bản đang được hiển thị trong WebView trước khi nó được hiển thị. Nếu bạn không muốn thiết lập một trình xử lý phản hồi (theo các câu trả lời khác), tôi đã tìm thấy bản sửa lỗi này với một số googling:

URL url = new URL("https://stackoverflow.com/questions/1381617");
URLConnection con = url.openConnection();
Pattern p = Pattern.compile("text/html;\\s+charset=([^\\s]+)\\s*");
Matcher m = p.matcher(con.getContentType());
/* If Content-Type doesn't match this pre-conception, choose default and 
 * hope for the best. */
String charset = m.matches() ? m.group(1) : "ISO-8859-1";
Reader r = new InputStreamReader(con.getInputStream(), charset);
StringBuilder buf = new StringBuilder();
while (true) {
  int ch = r.read();
  if (ch < 0)
    break;
  buf.append((char) ch);
}
String str = buf.toString();

Đây là rất nhiều mã và bạn sẽ có thể sao chép/đánh cắp nó và vào cuối nó

public class TestActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webview);
        final WebView webview = (WebView) findViewById(R.id.browser);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.addJavascriptInterface(new MyJavaScriptInterface(this), "HtmlViewer");

        webview.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                webview.loadUrl("javascript:window.HtmlViewer.showHTML" +
                        "(''+document.getElementsByTagName('html')[0].innerHTML+'');");
            }
        });

        webview.loadUrl("http://android-in-action.com/index.php?post/" +
                "Common-errors-and-bugs-and-how-to-solve-avoid-them");
    }

    class MyJavaScriptInterface {

        private Context ctx;

        MyJavaScriptInterface(Context ctx) {
            this.ctx = ctx;
        }

        public void showHTML(String html) {
            new AlertDialog.Builder(ctx).setTitle("HTML").setMessage(html)
                    .setPositiveButton(android.R.string.ok, null).setCancelable(false).create().show();
        }

    }
}
4 sẽ chứa cùng một HTML được rút ra trong WebView. Câu trả lời này là từ cách đơn giản nhất để tải chính xác HTML từ trang web vào một chuỗi trong Java và nó cũng sẽ hoạt động trên Android. Tôi đã không kiểm tra điều này và không tự viết nó, nhưng nó có thể giúp bạn ra ngoài.

Ngoài ra, URL này đang kéo được mã hóa cứng, vì vậy bạn sẽ phải thay đổi điều đó.

Đã trả lời ngày 18 tháng 2 năm 2012 lúc 18:31Feb 18, 2012 at 18:31

Edthethethirdthethethirdedthethird

6.2632 Huy hiệu vàng23 Huy hiệu bạc34 Huy hiệu đồng2 gold badges23 silver badges34 bronze badges

with(webView) {
    settings.javaScriptEnabled = true
    webViewClient = object : WebViewClient() {
        override fun onPageFinished(view: WebView?, url: String?) {
            view?.evaluateJavascript("document.documentElement.outerHTML") {
                val html = it.replace("\\u003C", "<")
            }
        }
    }
}

Đã trả lời ngày 25 tháng 5 lúc 14:49May 25 at 14:49

Hướng dẫn get html from webview android - lấy html từ webview android

Tại sao không nhận được HTML trước sau đó chuyển nó đến chế độ xem web?

private String getHtml(String url){
    HttpGet pageGet = new HttpGet(url);

    ResponseHandler handler = new ResponseHandler() {
        public String handleResponse(HttpResponse response) throws ClientProtocolException, IOException {
            HttpEntity entity = response.getEntity();
            String html; 

            if (entity != null) {
                html = EntityUtils.toString(entity);
                return html;
            } else {
                return null;
            }
        }
    };

    pageHTML = null;
    try {
        while (pageHTML==null){
            pageHTML = client.execute(pageGet, handler);
        }
    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return pageHTML;
}

@Override
public void customizeWebView(final ServiceCommunicableActivity activity, final WebView webview, final SearchResult mRom) {
    mRom.setFileSize(getFileSize(mRom.getURLSuffix()));
    webview.getSettings().setJavaScriptEnabled(true);
    WebViewClient anchorWebViewClient = new WebViewClient()
    {

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);

            //Do what you want to with the html
            String html = getHTML(url);

            if( html!=null && !url.equals(lastLoadedURL)){
                lastLoadedURL = url;
                webview.loadDataWithBaseURL(url, html, null, "utf-8", url);
            }
}

Điều này nên làm những gì bạn muốn làm. Nó được điều chỉnh từ đó có thể lấy mã HTML từ WebView và hét lên https://stackoverflow.com/users/325081/aymon-fournier cho câu trả lời của anh ấy.

Đã trả lời ngày 6 tháng 3 năm 2012 lúc 19:55Mar 6, 2012 at 19:55

Karl lkarl lKarl L

2504 Huy hiệu bạc9 Huy hiệu Đồng4 silver badges9 bronze badges

1

Tôi sẽ đề nghị thay vì cố gắng trích xuất HTML từ WebView, bạn trích xuất HTML từ URL. Bằng cách này, tôi có nghĩa là sử dụng một thư viện bên thứ ba như JSOUP để đi qua HTML cho bạn. Mã sau sẽ nhận HTML từ một URL cụ thể cho bạn

public static String getHtml(String url) throws ClientProtocolException, IOException {
        HttpClient httpClient = new DefaultHttpClient();
        HttpContext localContext = new BasicHttpContext();
        HttpGet httpGet = new HttpGet(url);
        HttpResponse response = httpClient.execute(httpGet, localContext);
        String result = "";

        BufferedReader reader = new BufferedReader(
            new InputStreamReader(
                response.getEntity().getContent()
            )
        );

        String line = null;
        while ((line = reader.readLine()) != null){
            result += line + "\n";
        }
        return result;
    }

Đã trả lời ngày 17 tháng 3 năm 2012 lúc 18:34Mar 17, 2012 at 18:34

MimminitomimminitoMimminito

2.7333 huy hiệu vàng20 Huy hiệu bạc26 Huy hiệu đồng3 gold badges20 silver badges26 bronze badges

2

Nó đơn giản để thực hiện chỉ cần các phương thức Javasript trong HTML của bạn để nhận được giá trị của nội dung HTML. Như trên mã của bạn, một số thay đổi cần thiết.

  public class htmldecoder extends Activity implements OnClickListener,TextWatcher
    {
    Button btsubmit; // this button in your xml file
    WebView wvbrowser;
    public void onCreate(Bundle savedInstanceState)
    {
                super.onCreate(savedInstanceState);
                    setContentView(R.layout.htmldecoder);



        btsubmit=(Button)findViewById(R.id.btsubmit);
        btsubmit.setOnClickListener(this);

        wvbrowser=(WebView)findViewById(R.id.wvbrowser);
        wvbrowser.setWebViewClient(new HelloWebViewClient());
        wvbrowser.getSettings().setJavaScriptEnabled(true);
        wvbrowser.getSettings().setPluginsEnabled(true);
        wvbrowser.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        MyJavaScriptInterface myinterface=new MyJavaScriptInterface();
        wvbrowser.addJavascriptInterface(myinterface,"interface");
        webView.loadUrl("file:///android_asset/simple.html");  //use one html file for //testing put your html file in assets. Make sure that you done JavaScript methods to get //values for html content in html file . 
   }
   public void onClick(View v)
{
    if(btsubmit==v)
    {

        webView.loadUrl("javascript:showalert()");// call javascript method.  
        //wvbr
    }
}

final class MyJavaScriptInterface {



        MyJavaScriptInterface() {

        }

        public void sendValueFromHtml(String value) {
           System.out.println("Here is the value from html::"+value);
        }

    }

}

JavaScript của bạn trong HTML

public class TestActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webview);
        final WebView webview = (WebView) findViewById(R.id.browser);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.addJavascriptInterface(new MyJavaScriptInterface(this), "HtmlViewer");

        webview.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                webview.loadUrl("javascript:window.HtmlViewer.showHTML" +
                        "(''+document.getElementsByTagName('html')[0].innerHTML+'');");
            }
        });

        webview.loadUrl("http://android-in-action.com/index.php?post/" +
                "Common-errors-and-bugs-and-how-to-solve-avoid-them");
    }

    class MyJavaScriptInterface {

        private Context ctx;

        MyJavaScriptInterface(Context ctx) {
            this.ctx = ctx;
        }

        public void showHTML(String html) {
            new AlertDialog.Builder(ctx).setTitle("HTML").setMessage(html)
                    .setPositiveButton(android.R.string.ok, null).setCancelable(false).create().show();
        }

    }
}
0

& Đảm bảo bạn gọi callme như bên dưới trong html

public class TestActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webview);
        final WebView webview = (WebView) findViewById(R.id.browser);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.addJavascriptInterface(new MyJavaScriptInterface(this), "HtmlViewer");

        webview.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                webview.loadUrl("javascript:window.HtmlViewer.showHTML" +
                        "(''+document.getElementsByTagName('html')[0].innerHTML+'');");
            }
        });

        webview.loadUrl("http://android-in-action.com/index.php?post/" +
                "Common-errors-and-bugs-and-how-to-solve-avoid-them");
    }

    class MyJavaScriptInterface {

        private Context ctx;

        MyJavaScriptInterface(Context ctx) {
            this.ctx = ctx;
        }

        public void showHTML(String html) {
            new AlertDialog.Builder(ctx).setTitle("HTML").setMessage(html)
                    .setPositiveButton(android.R.string.ok, null).setCancelable(false).create().show();
        }

    }
}
5 Hy vọng điều này sẽ giúp bạn.
Hope this will help you.

Đã trả lời ngày 11 tháng 3 năm 2012 lúc 6:40Mar 11, 2012 at 6:40

Hướng dẫn get html from webview android - lấy html từ webview android

Ông Sajid Shaikhmr. Sajid ShaikhMr. Sajid Shaikh

6,8314 Huy hiệu vàng20 Huy hiệu bạc34 Huy hiệu đồng4 gold badges20 silver badges34 bronze badges

5

Đã trả lời ngày 15 tháng 3 năm 2012 lúc 15:42Mar 15, 2012 at 15:42

lechuckcaptainlechuckcaptainlechuckcaptain

1.0221 Huy hiệu vàng9 Huy hiệu bạc24 Huy hiệu đồng1 gold badge9 silver badges24 bronze badges

Hãy thử sử dụng httpclient như Sephy đã nói:

public class TestActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webview);
        final WebView webview = (WebView) findViewById(R.id.browser);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.addJavascriptInterface(new MyJavaScriptInterface(this), "HtmlViewer");

        webview.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                webview.loadUrl("javascript:window.HtmlViewer.showHTML" +
                        "(''+document.getElementsByTagName('html')[0].innerHTML+'');");
            }
        });

        webview.loadUrl("http://android-in-action.com/index.php?post/" +
                "Common-errors-and-bugs-and-how-to-solve-avoid-them");
    }

    class MyJavaScriptInterface {

        private Context ctx;

        MyJavaScriptInterface(Context ctx) {
            this.ctx = ctx;
        }

        public void showHTML(String html) {
            new AlertDialog.Builder(ctx).setTitle("HTML").setMessage(html)
                    .setPositiveButton(android.R.string.ok, null).setCancelable(false).create().show();
        }

    }
}
1

Đã trả lời ngày 13 tháng 2 năm 2012 lúc 2:47Feb 13, 2012 at 2:47

4

Các phương thức đã cho là nếu bạn có URL web, nhưng nếu bạn có HTML cục bộ thì bạn cũng có thể có HTML bằng mã này

public class TestActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webview);
        final WebView webview = (WebView) findViewById(R.id.browser);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.addJavascriptInterface(new MyJavaScriptInterface(this), "HtmlViewer");

        webview.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                webview.loadUrl("javascript:window.HtmlViewer.showHTML" +
                        "(''+document.getElementsByTagName('html')[0].innerHTML+'');");
            }
        });

        webview.loadUrl("http://android-in-action.com/index.php?post/" +
                "Common-errors-and-bugs-and-how-to-solve-avoid-them");
    }

    class MyJavaScriptInterface {

        private Context ctx;

        MyJavaScriptInterface(Context ctx) {
            this.ctx = ctx;
        }

        public void showHTML(String html) {
            new AlertDialog.Builder(ctx).setTitle("HTML").setMessage(html)
                    .setPositiveButton(android.R.string.ok, null).setCancelable(false).create().show();
        }

    }
}
2

Làm thế nào để lấy dữ liệu HTML từ WebView Android?

HTML, CSS và JavaScript cho Android WebView tùy thuộc vào yêu cầu của bạn, bạn có thể tìm nạp nội dung của WebView từ Web bằng WebView.Phương thức LoadURL ("") hoặc bạn có thể liên kết mã trực tiếp (ví dụ: sau khi tải nó từ tài sản) bằng WebView.LoadDatawithBaseUrl ("", HTML, "Text/HTML", "UTF-8", NULL).webView. loadUrl("") method, or you can bind the code directly (e.g. after loading it from assets) using webView. loadDataWithBaseURL("", html, "text/html", "UTF-8", null) .

Làm cách nào để lấy mã HTML từ URL trong Android?

Mở trình duyệt Google Chrome trên điện thoại hoặc máy tính bảng Android của bạn.Mở trang web có mã nguồn bạn muốn xem.Nhấn vào một lần trong thanh địa chỉ và di chuyển con trỏ sang mặt trước của URL.Nhập nguồn xem Nguồn: và nhấn Enter hoặc Go.

Chúng ta có thể lấy dữ liệu từ WebView trong Android không?

2 - Android: 2.1 Để nhận dữ liệu từ WebView, chúng tôi có thể tạo một giao diện, sẽ cho phép WebView kết nối lớp gốc và truyền dữ liệu.Từ lớp gốc, tạo một lớp và sao chép như sau.Trong khi định cấu hình chế độ xem web, chúng ta cần đặt giao diện JavaScript như trên lớp JSBRIDGE.To receive data from webview ,we can create an interface, which will enable webview to connect the native layer and pass data. From native layer, create a class and replicate the following. While configuring web view, we need to set JavaScript interface as above JSBridge class.