html2canvasを使って、htmlを画像にしてFirebase Storage に保存しようとしているのですが
PCとスマホで挙動が違います。
PCだと全部レンダリングされるのですが、スマホだと一部の画像がレンダリングされません。
CORSなどに関しては、表示されている画像と同じFirebase Storageから取得しているので、解決されていると思っています。
使用フレームワークはVueです。
表示れなくなった理由が全く分かりません。
お力添えいただければ、幸いです。
JavaScript
1clickBtn() { 2 window.scrollTo(0, 0); 3 html2canvas(document.querySelector('#id'), { allowTaint: false, useCORS: true, proxy: true, imageTimeout: 0 }).then(canvas => { 4 const img = canvas.toDataURL(); 5 const date = new Date(); 6 // Base64からバイナリへ変換 7 const bin = atob(img.replace(/^.*,/, '')); 8 const buffer = new Uint8Array(bin.length); 9 for (let i = 0; i < bin.length; i++) { 10 buffer[i] = bin.charCodeAt(i); 11 } 12 // Blobを作成 13 const blob = new Blob([buffer.buffer], { 14 type: 'image/jpeg', 15 }); 16 const storageRef = firebase.storage().ref(); 17 // ファイルのパスを設定 18 const mountainsRef = storageRef.child(`images/${date}`); 19 // ファイルを適用してファイルアップロード開始 20 mountainsRef.put(blob).then(snapshot => { 21 snapshot.ref.getDownloadURL().then(downloadURL => { 22 this.imageUrl = downloadURL; 23 console.log(downloadURL); 24 this.sendImages(downloadURL); 25 }).catch(e => { 26 alert(console.error('oops, something went wrong!', e)); 27 }); 28 }); 29 }); 30 },
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。