成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

html2canvas以及domtoimage的使用踩坑總結(jié)

MageekChiu / 3882人閱讀

摘要:本人建議第二種,更保險三轉(zhuǎn)換的位圖不能被以上版本所識別。客戶使用的時候發(fā)現(xiàn)了這個問題,沒法。五離成功只有一步之遙了,使用了之后安卓手機不能將圖片分享給朋友。識別不了問題分析安卓能識別但不能識別矢量圖片解決辦法自己手寫咯。判斷手機為安卓還是。

前言
首先做個自我介紹,我是成都某企業(yè)的一名剛剛?cè)胄屑s一年的前端,在之前的開發(fā)過程中,遇到了問題,也解決了問題,但是在下一次解決相同問題的時候,只對這個問題有一絲絲的印象,還需要從新去查找,于是,我注冊了segmemtfault,便于搜集我的問題總結(jié),以及將踩坑經(jīng)驗分享給每一個開發(fā)人員,好了,閑話不多說。
需求
需求:要求能夠?qū)崿F(xiàn)根據(jù)后端返回的數(shù)據(jù)生成一張image,便于用戶將圖片分享到朋友或者朋友圈,取得用戶的關(guān)注。
開始踩坑

一.html2canvas對于跨域圖片,轉(zhuǎn)換的時候會將跨域圖片識別為空白。
問題分析:
既然是由于跨域引起的問題,那我們讓資源不跨域不就可以訪問了嗎?
解決辦法:
將圖片放置服務(wù)器,通過nginx進行代理資源,前端訪問圖片便不涉及到跨域問題。

二.html2canvas動態(tài)加載內(nèi)容,通過canvas轉(zhuǎn)換出來的數(shù)據(jù),圖片為空
問題分析:
內(nèi)容是動態(tài)加載進來的,轉(zhuǎn)換肯定是在請求完畢之后再去轉(zhuǎn)換,但是在請求完畢之后去轉(zhuǎn)換,按理說所需要的所有數(shù)據(jù)都已經(jīng)到達前端,應(yīng)該可以轉(zhuǎn)換,經(jīng)過思考,發(fā)現(xiàn)圖片內(nèi)容從后臺讀取需要一定時間去解析,才能夠完整的將圖片資源展示出來,html2canvas是將頁面上顯示的dom元素,經(jīng)過解析將dom畫在canvas上在轉(zhuǎn)換為image圖片格式。
解決辦法:
1.讓html2canvas轉(zhuǎn)換代碼等待一定時間,在進行轉(zhuǎn)換操作,可進行轉(zhuǎn)換。代碼如下圖所示

2.當(dāng)全部的圖片數(shù)據(jù)都加載完畢之后,在執(zhí)行轉(zhuǎn)換操作。(本人建議第二種,更保險)

三.html2canvas轉(zhuǎn)換的base64位圖不能被ios8以上版本所識別。會呈現(xiàn)出整個截圖頁面空白
問題分析:
這個問題的起因,應(yīng)該是html2canvas對高版本的ios不支持(自我感覺),這個問題我很是頭疼,當(dāng)時根本沒有對ios進行測試??蛻羰褂玫臅r候發(fā)現(xiàn)了這個問題,沒法。想辦法解決。百度說是由于ios不能識別base64的前綴,于是我試過將圖片的前綴去除,但發(fā)現(xiàn)沒反應(yīng)。還是無用。思來想去感覺html2canvas坑太多了。填都填不完。于是。
解決辦法:
我采用了另一款插件,dom-to-image,弄上去沒有問題了。

四.dom-to-image運用上去,在ios上能夠出現(xiàn)內(nèi)容了,但發(fā)現(xiàn)存在一個問題,部分圖片內(nèi)容,第一次進行公眾號網(wǎng)頁加載,沒有正確顯示,要在次進入才會顯示,此bug同樣是ios8以上版本
問題分析:
這一個問題我沒有找到問題所在,一臉懵,不過最終還是得到了解決。
解決辦法:
運用dom-to-imagede toSvg方式完美解決問題。

五.離成功只有一步之遙了,使用了svg之后安卓手機不能將圖片分享給朋友。識別不了
問題分析:
安卓能識別jpeg但不能識別svg矢量圖片
解決辦法:
自己手寫咯。判斷手機為安卓還是ios。

六.所有的問題都已解決,我興奮的跑去借了個果5,拿來測試,發(fā)現(xiàn)網(wǎng)頁的背景圖片不見了。
問題分析:
我長按兩秒左右又是正常顯示了,故圖片是已經(jīng)完美轉(zhuǎn)換成功,可能是因為圖片在轉(zhuǎn)換過程中,沒有完美適配到4.0寸的屏幕,
解決辦法:
模擬長按事件,解決bug,這個方式可能不太好,但也是一種解決方式。

總結(jié)

躺過的坑都是我的經(jīng)驗,分享的同時我又加固了一遍。解決實際問題的思路,在過了一遍,對我?guī)椭馨簟?/p>

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/52858.html

相關(guān)文章

  • html2canvas以及domtoimage使用踩坑總結(jié)

    摘要:本人建議第二種,更保險三轉(zhuǎn)換的位圖不能被以上版本所識別??蛻羰褂玫臅r候發(fā)現(xiàn)了這個問題,沒法。五離成功只有一步之遙了,使用了之后安卓手機不能將圖片分享給朋友。識別不了問題分析安卓能識別但不能識別矢量圖片解決辦法自己手寫咯。判斷手機為安卓還是。 前言 首先做個自我介紹,我是成都某企業(yè)的一名剛剛?cè)胄屑s一年的前端,在之前的開發(fā)過程中,遇到了問題,也解決了問題,但是在下一次解決相同問題的時候,只...

    鄒強 評論0 收藏0
  • Asp.Net 將HTML中通過dom-to-image.js標(biāo)簽div內(nèi)內(nèi)容轉(zhuǎn)化為圖片保存到本地

    摘要:由于客戶的需求,將寫出來的一個統(tǒng)計能夠保存到本地。作為碼奴的我只能慢慢搬磚咯一開始使用的是。功能是可以實現(xiàn),但是有缺陷。用附件中的畫畫和其他工具打開又沒有什么問題下了班等下回去家里的電腦看看由于客戶的需求,將js寫出來的一個統(tǒng)計能夠保存到本地。作為碼奴的我只能慢慢搬磚咯!一開始使用的是html2canvas.js。功能是可以實現(xiàn),但是有缺陷。話不多說開始搞! 1、引入幾個JS庫 ①:jque...

    番茄西紅柿 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<