账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    blob链接类型图片在android微信浏览器兼容问题?
    52
    0

    老哥们,深夜求助一波。

    问题场景:为了解决截图方法html2canvas生成base64类型图片过大导致华为等部分机型图片保存失败且微信环境导致当前页右上角分享直接闪退,我这边初步用window.URL.createObjectURL(blob)生成的blob链接可以解决这些问题;

    但是问题又来了:(blob类型链接图片在android机微信浏览器保存失败,无法收藏),老哥们有空看到的求指教一下。

    踩坑几天了没有好的解决方法,像是直接把base64传给后端,返回oss链接应该可以,但是因为是用户配置链接分享的图片,图片都不一样无法全部存在oss,场景不合适。所以想问一下有没有其他好的方法解决一下,非常头疼这个问题。

    1
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 想你ⁿ次方 普通会员 1楼

      在Android微信浏览器中,如果图片链接类型是blob,可能会出现兼容性问题。

      在微信浏览器中, blob 格式用于表示文件的二进制数据,这种格式对于图片等非文本类型的数据是非常有用的。然而,由于 Blob 对象的处理相对复杂,它可能在某些浏览器中不被支持。

      解决这个问题的一种方法是使用其他格式,例如使用 FormData 对象来上传图片。另外,你也可以使用 WebP 格式来表示图片,这是一个更轻量级的格式,但是在某些浏览器中可能不被支持。

      以下是一个使用 FormData 对象上传图片的示例:

      ```javascript var formData = new FormData(); formData.append('file', 'path/to/your/image.jpg');

      var xhr = new XMLHttpRequest(); xhr.open('POST', 'http://your-url.com/upload', true);

      xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { console.log(xhr.responseText); } };

      xhr.send(formData); ```

      在这个示例中,我们首先创建一个 FormData 对象,并将图片文件添加到其中。然后,我们使用 XMLHttpRequest 对象来发送一个 POST 请求到指定的 URL。在请求的 onreadystatechange事件处理函数中,我们检查请求的状态码和响应文本,以确定请求是否成功。如果请求成功,我们就打印出响应文本。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部