一、问题描述
今天使用腾讯IM的TUIKIT示例工程:https://github.com/TencentCloud/chat-uikit-vue.git ,发现在Android设备的微信里打开,选择相册的图片进行编辑后发送会失败:
二、问题排查
由于在微信中不好排查问题,可以选择用VConsole
来查看日志:
// index.html
<script src="https://cdn.bootcdn.net/ajax/libs/vConsole/3.9.0/vconsole.min.js"></script>
<script>
new VConsole();
</script>
日志中可以看到以下提示:
那么IM SDK是如何判断文件格式不对的呢?
根据代码调用,找到发送图片的调用代码:TUIChatService.sendImageMessage(options);
为了找到TUIChatService.sendImageMessage的源码位置,可以使用NotePad++来查找关键代码:
代码所在文件:@tencentcloud\call-uikit-vue\tuicall-uikit-vue.es.js
可以看到,SDK是根据name来截取出扩展名作为图片的类型,而Android 微信中对图片编辑后得到的文件name丢失了扩展名:
这就导致了对图片的类型验证失败。