简体   繁体   English

Android系统。 如何在WebView的ImageView上设置图像?

[英]Android. How to set image on ImageView from WebView?

I am using WebView to submit form values(I do not have access to API). 我正在使用WebView提交表单值(我无权访问API)。 Webview is invisible. Webview是不可见的。 User will fill just EditTexts. 用户将仅填充EditTexts。 Webview fields will be filled using Javascript. Webview字段将使用Javascript填充。 The problem I have is CAPTCHA image. 我的问题是验证码图片。 Web form has PNG image which contains CAPTCHA numbers. Web表单具有包含验证码编号的PNG图像。

在此处输入图片说明

HTML: HTML:

<img id="captcha_img" src="/service/INNCaptcha">

I want to take captcha image from WebView, and set it to ImageView. 我想从WebView获取验证码图像,并将其设置为ImageView。 I tried this code: 我尝试了这段代码:

webview.getSettings().setJavaScriptEnabled(true);
        webview.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                String javascript = "javascript: var form = document.getElementsByClassName('form');"
                        + "var body = document.getElementsByTagName('body');"
                        + "body[0].innerHTML = form[0].innerHTML;;";
                view.loadUrl(javascript);
                webview.setVisibility(View.VISIBLE);

                //THIS PIECE OF CODE RETURNING NULL BITMAP
                view.buildDrawingCache();
                Bitmap bmap = ivCaptcha.getDrawingCache();
                ivCaptcha.setImageBitmap(bmap);
            }
        });

Result: BitMap is null. 结果:BitMap为空。 I think I should identify exactly which image(PNG) I want to show. 我想我应该确定要显示的图像(PNG)。 So my question is how to set image on ImageView from WebView in this case? 所以我的问题是在这种情况下如何在WebView的ImageView上设置图像?

您必须在getDrawingCache();之前调用setDrawingCacheEnabled (true) getDrawingCache();

Check if you have enabled DOM on webview. 检查您是否在Webview上启用了DOM。 Also, does it have a src link? 另外,它是否有src链接?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM