2016-09-01 1 views
0

Я пытаюсь изменить src тега img с помощью jquery. В firefox он работает нормально, но в приложении для Android-смартфонов на андроиде ничего не происходит.Phonegap изменить изображение src с jquery не работает на Android

Что я делаю:

Я получаю изображение base64 с Ajax запроса. Если запрос завершен, я создаю объект URL с изображением и изменяю src тега img на объект URL. Вот мой код:

 $.ajax({ 
     type: 'GET', 
     dataType: 'json', 
     url: MySecretPHPFunctionOnAServerThatReturnsABase64Image..., 
     complete: function(data) { 
      var base64Image = data.responseText; 
      var image = makeUrlObject(base64Image, "image/jpeg"); 

      // ERROR!!! :-) 
      // Only working in Browser, not on android... 
      $("#scanPreview").prop("src", image + '?' + genTimestamp()); 
     }, 
     error: function() {} 
    }); 

Я думаю, что функция makeUrlObject не является причиной для ошибки, но если вы хотите увидеть его, убедившись, или если я что-то с видом ;-)

function makeUrlObject(dataURL, typeURL) {   
     var binStr = atob(dataURL); 
     var buf = new ArrayBuffer(binStr.length); 
     var view = new Uint8Array(buf); 
     for(var i = 0; i < view.length; i++) 
      view[i] = binStr.charCodeAt(i); 

     var blob = new Blob([view], {type: typeURL}); 

     binStr=null; 
     buf = null; 
     view = null; 

     URL = window.URL || window.webkitURL; 

     return URL.createObjectURL(blob);  
    }; 
+0

, пожалуйста, распечатайте журнал изменения изображения. поэтому вы получите представление, что это из-за url или проблемы в изображении src. – Krishna

+0

Base64Image и url выглядят так, как я ожидал. – FloRoe

+0

вы получаете правильный путь в переменной изображения, так что вы добавляете функцию genTimestamp(). может быть проблема в этой функции. можете также добавить эту функцию и проверить, что она возвращает – Krishna

ответ

1

Вместо .prop ("ЦСИ"

попробовать

уаг элем = document.getElementById ('myimg'); myimg.src = "theimage.jpg";

также чувствительный к регистру