Android Base64圖片無法長按保存 問題解決


 

踩了一個巨坑。

 

目前微信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));

 

 


免責聲明!

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



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