最近公司做的一些项目都跟微信有关系,需要有个分享的功能,但是在测试环境的时候分享功能都正常,图片标题描述之类的都没问题,放到线上,安卓手机分享时,缩略图就是不显示
介绍一下测试/生产环境:
测试环境:网站和图片服务器都是采用http
生产环境:网站和图片服务器都是采用https
问题原因猜想:
a.图片大小和尺寸太大出不来:图片是150X150 的,近40K,后来给制作重新做图,30X30的10k不到,分享图片大小最好不要超过32k ,尺寸100x100以上就行,别太大了,太小了图片失真
b.图片路径有{-}中划线:某些浏览器或手机对含有中划线的路径不【友好】,结果把图片放到上一层目录,避免类似.../year-imgs/head.png这种路径
c.图片后缀不行:图片做的是.png后缀格式的,网上资料说分享朋友圈的时候可能直接会忽略掉.png后缀的图片,最好使用.jpg的图片作为分享图片的格式
d.分享时调用接口没有取到图片地址:在页面的顶部(或者把分享的那张图片放在该页面所有图片的前面第一个位置)head里面放置一个图片(隐藏的)
<img id="head_img" src=”http://wap.qd0931.com/wap/sj_zqth/images/logo.jpg” width=”0″ height=”0″ />,千万不能写成display:none这种隐藏,
这样调用分享接口时,微信应该会默认读取到页面第一张图片的路径
e.最后还是不行,直接使用js获取img的图片路径:$('#head_img').attr('src'),结果没反应
通过上面的一系列的措施最终图片还是没有出来,最后通过对比发现生产环境的图片服务器(协议)是https的,测试的图片服务器(协议)是http的,于是我就把生产环境分享的缩略图的路径复制到测试上面,结果分享的时候果然不显示,而测试服务器的图片在分享的时候就显示,得出结论:安卓机在分享时缩略图不显示可能跟图片服务器的协议有关系(http、https)