【问题标题】:Pass image from HTML via Android javascript interface通过 Android javascript 接口从 HTML 传递图像
【发布时间】:2012-03-21 00:36:23
【问题描述】:

我的应用程序加载了一个小型 HTML 文档,其中包含 web 视图中的一个图像。如何获取此图像并将其用作我的应用程序中的位图对象?

我已经在使用 JavaScriptInterface 和我的 webview 来获取一些其他信息,比如传递布尔值。是否可以通过 JavaScriptIterface 传递图像?这是一个好主意还是有更好的方法?

【问题讨论】:

  • 问题是由于特定原因我不想再加载一次图像。否则,这将是显而易见的解决方案。我已经加载了一次,我想重新使用该图像。

标签: javascript android android-webview


【解决方案1】:

看看这个问题:Get image data in JavaScript?

您也许可以在(我假设是隐藏的)画布上绘制图像,然后使用 toDataURL 对其进行 Base64 编码,并将其作为字符串通过 JS 接口传递,然后在 Java 端对其进行解码。我想它会很慢,但值得一试。

【讨论】:

  • 谢谢!我试过这个,但是执行 ctx.drawImage(img, 0, 0); 时 JavaScript 似乎崩溃了。我还需要一些关于如何在应用程序中将字符串转换为 Bitmap 对象的建议。
  • 另外,据我了解,toDataURL 方法适用于 png,可能适用于 jpg,但不适用于 gif。对吗?
  • 不幸的是,我不能说我已经尝试过了,所以我无法在细节上为您提供太多帮助。从概念上讲,我认为这可能对您有所帮助。
  • 我解决了转换为位图的问题(如果有人感兴趣:imageView.setImageBitmap(BitmapFactory.decodeByteArray(Base64.decodeBase64(imgString.getBytes(), 0, imageAsBytes.length)));)。如果我在 Javascript 中创建图像,它可以工作,但是当我尝试 drawImage 方法时它仍然崩溃。
猜你喜欢
  • 1970-01-01
  • 2019-01-28
  • 1970-01-01
  • 2020-12-19
  • 2018-02-14
  • 2016-06-09
  • 2014-02-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多