Android 与 JS 交互数据上限

时间:2024-03-24 13:44:26

在 Android 给 JS 传 Base64 格式的图片时

报错 Refusing to load URL as it exceeds 2097152 characters
Android 与 JS 交互数据上限2097152 字节 / 1024 / 1024 = 2 兆,这说明调用 loadUrl,最多只能传 2M 的内容

Base64是将原文按照每 3 个字节一组分开,这个 3 字节组中的每一组将被按照位分解成 4 个部分,每个部分 6 个位,在这 4 个部分的每个部分高位加上 2 个 0构成一个新的 4 字节组,新的字节组中,每个字节只有 6 位,能表示 64 个值。

如果原文不是三字节的倍数,可能多出一个字节和两个字节,分别会被转为 2 字节和 3 字节的 BASE64 编码,这时编码系统应该在形成的 BASE64 编码最后添加上填充符”=”,保证 BASE64 编码长度是4的倍数。所以在 BASE64 编码后添加的填充符 ”=” 可能为 0-2 个。

2兆 / 4 * 3 = 1.5 兆 = 1536 字节,所以传给 JS 的图片最多不能超过 1.5 兆

相关文章