【问题标题】:Embedded Base64 Image Won't Display in Dolphin or Android Stock Browser嵌入式 Base64 图像不会在 Dolphin 或 Android 股票浏览器中显示
【发布时间】:2011-09-07 19:49:04
【问题描述】:

我整个下午都在谷歌上搜索这个问题,似乎在任何地方都找不到 Dolphin 和 Base64 Image 或 Data URL 一起出现的任何搜索。但是当我发现一般只嵌入 base64 图像的文章时,他们几乎都说它适用于除 IE 之外的几乎所有浏览器。当然,我也不能只查看该页面源代码或设备上的任何错误控制台(Samsung Galaxy Tab Gingerbread)来查看页面正在解释什么。我得到的只是?图像应该在哪里。适用于 Chrome 和 Opera,但 Dolphin 或普通浏览器均不适用。

基本上,我有一个第三方签名板控件,其签名图像作为 base64 编码字符串返回给我。然后我将使用 base64 编码的字符串,将其转换为 DataURL 并将其作为 src 分配给我的 img 控件。在 Chrome 和 Opera 上像魅力一样工作,但在我需要它工作的任何一个移动浏览器上都没有。

 var canvas = signaturestr.toDataURL("image/png") //Have also tried jpg and bmp
 $("#image").attr("src", canvas)

这给了我?图像应该在哪里。因此,要么我需要一种方法来获取数据 url 并使其为这些浏览器所接受,要么我需要能够使用原始 base64 代码来生成图像。另外需要注意的是,这是一个离线应用程序,我需要所有解决方案都在 javascript 或 jquery 中。

编辑:发现来自其他网站的 base64 图像(包括来自 stackoverflow 论坛的头像)确实出现在这些浏览器上。尝试减小图像的大小,但仍然没有运气。仍然得到替代文本和?。大小绝对不是问题。将我的图像缩小到比有效头像更小的尺寸。真的不知道为什么这个图像在这些浏览器上不起作用。似乎与有效的图像完全相同。

【问题讨论】:

    标签: android base64 data-url


    【解决方案1】:

    我遇到了类似的问题,发现了这个:

    当您尝试加载JPEG 文件时,dataURL 是错误的...它以data:base64 而不是data:image/jpeg;base64 开头。我解决了这个问题:

    var image = new Image();
    image.onload = doSomethingElse();
    image.src = myDataURL.replace('data:base64', 'data:image/jpeg;base64');
    

    PNG 文件似乎可以正常工作。

    我使用 Android 4(冰淇淋三明治)进行了测试,效果很好 - 甚至可以直接从设备加载大照片。

    【讨论】:

    • 我已经为此努力了好几个小时。我看到 dataURL 是不同的,但我没有想到 android 可能是错误的。工作一种享受。谢谢!
    【解决方案2】:

    能够简单地在禁用控件的新实例上重新显示捕获的签名,而不是转换为图像并以这种方式显示。效果一样。

    【讨论】:

    • 嗨,Jmease,您能否详细说明并更新您的答案,实际上我在 android 设备上也遇到了同样的问题并显示“?”标志我正在做你正在做的同样的事情。提前致谢
    猜你喜欢
    • 2013-04-24
    • 2012-11-23
    • 2013-01-28
    • 2015-05-07
    • 2014-10-18
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    • 2020-08-16
    相关资源
    最近更新 更多