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();
    			}
    		});


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


  • 相关阅读:
    安装一个Linux 罗晓杜
    基本正则表达 罗晓杜
    安装MySQL 罗晓杜
    复选框返回选中项ID到后台
    软件工程的理解
    作业一:计科131邵楠
    javascript中函数和方法的区别
    Javascript动画系列之 —— lightbox实现(一)
    如何让自己的javascript代码具有可维护性?
    javascript动画系列 —— 切换图片(原生)
  • 原文地址:https://www.cnblogs.com/aukle/p/3217782.html
Copyright © 2011-2022 走看看