通过钉钉客户端7.1.1版本打开我们的系统页面,其中有一张图片被顺时针旋转了90度;期望是如下图正常展示
经测试发现,在企微、钉钉ios客户端、钉钉Android客户端RC版本打开页面时图片均展示正常,希望钉钉排查是不是Android的webview版本问题导致
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您描述的问题,图片在钉钉 Android 客户端 7.1.1 版本中被顺时针旋转了 90 度,而在其他客户端(如企微、钉钉 iOS 客户端、钉钉 Android RC 版本)中展示正常。以下是针对该问题的分析和排查建议:
图片在 WebView 中展示异常,可能与以下因素相关: - WebView 的渲染行为差异:不同版本的 WebView 可能对图片的 EXIF 信息(如方向标签)解析存在差异。 - Android 系统版本或 WebView 版本差异:正式版和 RC 版本可能存在 WebView 实现上的差异,导致图片展示不一致。 - 图片本身的 EXIF 信息:如果图片包含方向标签(Orientation Tag),某些 WebView 可能未正确处理该标签,导致图片旋转。
exiftool -Orientation=1 -n your_image.jpg
chrome://version
页面(如果支持)。shouldInterceptRequest
方法拦截 WebView 的网络请求,检查图片加载过程中的 MIME 类型和编码是否正确。webView.setWebViewClient(new WebViewClient() {
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
if (request.getUrl().toString().endsWith(".jpg")) {
try {
URL url = new URL(request.getUrl().toString());
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
return new WebResourceResponse(
"image/jpeg",
"utf-8",
connection.getInputStream()
);
} catch (Exception e) {
e.printStackTrace();
}
}
return super.shouldInterceptRequest(view, request);
}
});
mogrify -auto-orient your_image.jpg
<style>
img {
image-orientation: from-image; /* 尊重 EXIF 方向 */
}
</style>
通过以上步骤,您可以逐步定位并解决图片在钉钉 Android 客户端中展示异常的问题。