webview可以执行js,js获取高度后,调用native方法返回

解决方案 »

  1.   

    webviewheight = (int) (webview.getContentHeight() * webview
    .getScale());
      

  2.   

    楼上的方法不管用,webviewheight 总为0,。
    webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
    super.onPageStarted(view, url, favicon);
    System.out.println("--------------onPageStarted--------");
    }

    @Override
    public void onPageFinished(WebView view, String url) {
    super.onPageFinished(view, url);
    System.out.println("--------------onPageFinished--------");
    int webviewheight = (int) (webView.getContentHeight() * webView
    .getScale()); 
    System.out.println("--onPageFinished--------> webviewheight = "+webviewheight);
    }

    @Override
    public void onReceivedError(WebView view, int errorCode,
    String description, String failingUrl) {
    super.onReceivedError(view, errorCode, description, failingUrl);
    System.out.println("--------------onReceivedError--------");
    }

    @SuppressLint("SetJavaScriptEnabled")
    @Override
    public void onLoadResource(WebView view, String url) {
    super.onLoadResource(view, url); // 监听器加载这是为了防止动态加载图片时新加载的图片无法预览
    addImageClickListener();

    WebSettings settings = webView.getSettings();
    settings.setTextZoom(240);
    settings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
    settings.setUseWideViewPort(true); // 打开页面时, 自适应屏幕
    settings.setLoadWithOverviewMode(true);// 打开页面时, 自适应屏幕
    settings.setSupportZoom(false);// 用于设置webview放大
    settings.setBuiltInZoomControls(false);
    settings.setJavaScriptEnabled(true);
    }
    });