踩了一個巨坑。
目前微信ios/android 均能長按保存src=base64的圖片 (微信android x5 專門解決了這個問題);
但是android其他App沒有針對解決這個系統問題(姑且認為是問題吧),所以長按base64圖片 無法出現保存選項,而是出現了默認的"選擇、復制、粘貼 ";
嘗試使用blob也不行;
所以目前能解決的辦法只有通過后台繞一圈;
base64 --> 后台 ---> url
blob 轉 base64
function blobToDataURL(blob, callback) { var a = new FileReader(); a.onload = function (e) { callback(e.target.result); } a.readAsDataURL(blob); }
base64圖片 轉 blob
function dataURLtoBlob(dataurl) { var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); while(n--){ u8arr[n] = bstr.charCodeAt(n); } return new Blob([u8arr], {type:mime}); }
blob 插入html dom
$("#img").attr("src",window.URL.createObjectURL(blob));