Android WebView动态更新图片

本文详细介绍了如何在AndroidWebView中将图片转化为base64编码并传递给JS函数,解决签名数据展示问题。通过提供一个自定义函数getBase64String,实现了将图片路径转换为base64编码,并使用Base64.NO_WRAP参数确保编码不换行。文章还讨论了在不同场景下编码策略的选择,以及避免编码过程中出现的问题。


问题背景:Android WebView加载了一个HTML文件,其中包含了js处理函数。当点击签名时,调用本地的签名页面进行签名,签名完成后,希望把签名数据传递给js函数,显示最新签名。但不能显示成功。


查阅了网上的相关文档,传给js的图片数据为:

"data:image/png;base64," +图片的base64数据


前面部分根据图片格式相应变化,后部分只需要获取图片的base64数据,代码如下:


public static String getBase64String(String imgFilePath) {
	byte[] data = null;
		
	try {
		InputStream in = new FileInputStream(imgFilePath);
		data = new byte[in.available()];
		in.read(data);
		in.close();
	} catch (IOException e) {
		e.printStackTrace();
	}

	return Base64.encodeToString(data, Base64.NO_WRAP);
}
这个函数中的只能用Base64.No_WRAP,其源码中解释为:

 Encoder flag bit to omit all line terminators (i.e., the output will be on one long line).


之前也尝试了Base64.DEFAULT,都失败了。


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值