使用html2canvas在手機端獨立實現h5頁面轉圖片


需求

方便用戶把每日消息的海報圖片分享到微信朋友圈進行消息擴散

實現方案

使用html2canvas 插件,html2canvas 1.0.0-alpha.11 ,github地址:https://github.com/niklasvh/html2canvas  官網:https://html2canvas.hertzen.com/

具體實現:二維碼里是h5頁面鏈接,當h5頁面加載完成后,第一步:調用html2canvas方法返回canvas對象,第二步:使用canvas.toDataURL()方法生成<img>標簽可用的base64圖片數據,在頁面最后插入<img>,然后隱藏頁面元素;

注意點:

一、使用html2canvas 插件,canvas需要服務器環境,比如使用HbuilderX或者VSCode的live server打開html文件即可;

二、html2canvas插件並不支持所有的css屬性,避免使用不支持的屬性(比如:text-overflow: ellipsis;),具體看這里 https://html2canvas.hertzen.com/features

三、html2canvas插件期望使用的圖片跟當前域名同源 - 如果是跨域的圖片資源,需要設置 {useCORS:true};並且給跨域<img>的src添加一個固定的字符串(如:<img src="https://***/***.jpg?avoid_browser_cache">),讀取重新請求的圖片而不是瀏覽器緩存的圖片;

四、如果使用偽元素:before,同時使用:nth-child(),偽元素會變成第一個child的問題,使用:nth-of-type()就可以了;

五、在微信中,有時候應用background-size屬性,會導致canvas.toDataURL()方法失效,即canvas轉不成圖片;

實現代碼:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM