最近公司做的一些項目都跟微信有關系,需要有個分享的功能,但是在測試環境的時候分享功能都正常,圖片標題描述之類的都沒問題,放到線上,安卓手機分享時,縮略圖就是不顯示
介紹一下測試/生產環境:
測試環境:網站和圖片服務器都是采用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)
然后根據自己的結論是網上查找相關的資料,果然有這么回事,下圖是我在網上看到的特意截個圖(原創莫怪!):
至於為什么啟用了https,圖片在安卓機器上面就不顯示,原因我也不是特別清楚,可能是協議的證書不太完整吧!有待學習