To get the source code of html page, we can use javascript . For this first we have to enable the javascript interface of the web view. Then provide a custom webview client for that view. We will get a onPage finished call after loading a url. And in this method we can inject a javascript to get a html. An example below
WebSettings settings = webview.getSettings(); settings.setJavaScriptEnabled(true); settings.setSavePassword(false); webview.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT"); webview.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } public void onPageFinished(WebView view, String url) { Log.i("Web view", "Finished loading URL: " + url); // killProgressDialog(); webview.loadUrl("javascript:window.HTMLOUT.showHTML(document.getElementById('oauth_pin').innerHTML)"); } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { // showProgressDialog(); super.onPageStarted(view, url, favicon); } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { // killProgressDialog(); Toast.makeText(getBaseContext(),"Loading error", Toast.LENGTH_SHORT).show(); } }); class MyJavaScriptInterface { public void showHTML(String html) { Log.i("HTML" ,html); } }
No comments:
Post a Comment