是否可以将图片从本地 Android 手机存储加载到 WebView 中?基本上我想做的是,拍照,然后在 WebView 中显示该图片(如预览图片),然后在填写更多信息后,将该图片与完整数据上传到数据库。一切都在 android studio Java 代码中,WebView 显然是我从 Assets 文件夹加载的 .html 文件。
我在想也许我需要创建一个 <img id="image"></img>
然后以某种方式获得ID?但是即使我设法获得了 ID,如何将图片存储在里面呢?
我已经完成了所有相机的工作,所以我可以打开相机(通过我的 WebView)并拍照,图片保存在我知道的路径中,并且我知道图片的名称。另外,我目前可以从手机中选择图片,但问题是它只是选择而没有执行任何操作,因此选择没有用。
如果您需要任何代码,我会编辑。
最佳答案
所以我找到了我想做的事情的解决方案,如果有一天有人想知道这篇文章并想知道解决方案,我会在这里发布答案。
基本上拍照后,我调用 javascript 函数,将拍摄的图像放入我的 .html
中文件<img></img>
之间标签作为源。
这是我的onActivityResult
在MainActivity.java
:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE && resultCode == Activity.RESULT_OK) {
//Getting the full image path of the image taken
final String imagePath = "file://"+ currentPhotoPath;
webView.post(new Runnable() {
@Override
public void run() {
webView.evaluateJavascript("postImage('" + imagePath + "')", null);
}
});
getLocation();
if (data == null) {
//Display an error
Log.d("performClick", "Error: data == null");
return;
}
}
}
它的作用是调用 javascript 函数 postImage 并将 imagePath 作为参数传递,以及我的 hello.js
中的函数文件是:
function postImage(imagePath){
document.body.innerHTML = "<img src=\""+ imagePath + "\">";
}
现在,一旦我拍摄了图片,它就会作为图像显示在我的 WebView 上,而无需重新加载页面或加载仅包含图像的另一个 URL。
关于android - 将图像从本地 Android 存储加载到 WebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58309944/