zoukankan      html  css  js  c++  java
  • Android中通过Java获取Webview加载内容

    
    
    

    有时候我们需要在加载webview时,获取加载完成的内容,当然,WebView也是有可能包含javascript。通过以下操作,我们是可以获取到WebView加载的内容。

    1、自定义一个内部类,获取WebView加载的内容

    class Handler {
    public void show(String data) {  // 这里的data就webview加载的内容,即使页面跳转页都可以获取到,这样就可以做自己的处理了 
    new AlertDialog.Builder(WebViewActivity.this).setMessage(data).create().show();
    }
    }


    2、webview关键代码

    // web页面处理
    webpage.getSettings().setJavaScriptEnabled(true);// 支持javascript
    webpage.addJavascriptInterface(new Handler(), "handler");  // 相当于在网页的js中增加一个handler类,实现java与WebView的js交互
    webpage.loadUrl(webpage_url);		
    webpage.setWebViewClient(new WebViewClient() {
    			// 依然在webview打开新页面
    			public boolean shouldOverrideUrlLoading(WebView view, String url) {
    				view.loadUrl(url);
    				return true;
    			}
    
    			@Override
    			public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) {
    				return super.shouldOverrideKeyEvent(view, event);
    			}
    
    			@Override
    			public void onPageStarted(WebView view, String url, Bitmap favicon) {
    				super.onPageStarted(view, url, favicon);
    			}
    
    			@Override
    			public void onPageFinished(WebView view, String url) {
    				// 通过内部类定义的方法获取html页面加载的内容,这个需要添加在webview加载完成后的回调中
    				view.loadUrl("javascript:window.handler.show(document.body.innerHTML);");
    				super.onPageFinished(view, url);
    			}
    
    			@Override
    			public void onScaleChanged(WebView view, float oldScale,
    					float newScale) {
    				// TODO Auto-generated method stub
    				super.onScaleChanged(view, oldScale, newScale);
    				webpage.requestFocus();
    				webpage.requestFocusFromTouch();
    			}
    		});


    通过以上的操作,你就可以达到你需要的效果了。挺简单实用的


  • 相关阅读:
    (紫书,感谢作者)第7章暴力求解法
    明日更新
    明天更新
    UVa11882最大的数(dfs+剪枝)
    UVa12569树上的机器人的规划
    es6中的reduce方法?
    浏览器是如何渲染页面的?
    判断是不是一个数组?
    判断是否是一个数组?
    var与let的区别?
  • 原文地址:https://www.cnblogs.com/aukle/p/3217782.html
Copyright © 2011-2022 走看看