Я попытался преобразовать строку base64 JPEG в blob на приложении Cordova/hybrid, работающем на iOS 8, используя следующую функцию b64toBlob
.Преобразование base64 в blob в javascript
b64toBlob = function(b64, onsuccess, onerror) {
var img = new Image();
img.onerror = onerror;
img.onload = function onload() {
var canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
canvas.toBlob(onsuccess);
};
img.src = b64;
}
Однако это дает ошибку
Uncaught Error: TypeError: undefined is not a function (evaluating 'canvas.toBlob(onsuccess)')
, когда мы делаем
var imageData = "data:image/jpeg;base64," + imageData
b64toBlob(imageData,
function(imageBlob) {
uploadBlob(imageBlob)
}, function(error) {
console.log(error)
});
Как можно обойти эту ошибку?
toBlob() не работает со многими известными браузерами. Пожалуйста, попробуйте мое решение ниже. @Nyxynyx – filipvkovic