lanvin07
@lanvin07
Нравится html5+js

Как сохранить картинку в Local Storage в Android?

На десктопе сохраняю картинку в Local Storage в Base64 (рис.1), потом вытаскиваю её оттуда и отображаю (рис.2) - всё ОК.
Когда же это приложение билдю в Phonegap, то вижу, что тип картинки не сохранён и картинка, соответственно, не отображается (потерянный фрагмент выделен на рис.3).
Если вручную добавляю недостающий фрагмент image/png;, то картинка нормально отображается.
Что делает Phonegap с JS, что такое происходит - непонятно, т.к. код проекта не вижу.
Рис.1 178a17882098444482c940b458f2f44e.png Рис.2 bc5435643cd94fa6bf0423c8afb6a353.png Рис.3 8221231c21154bd7ad136ad97f2f7ed2.png
Почему это происходит, и как решить проблему?
  • Вопрос задан
  • 491 просмотр
Решения вопроса 1
lanvin07
@lanvin07 Автор вопроса
Нравится html5+js
Код
Вроде удалось решить задачку, но с помощью костыля :-)
index2.html:
$( document ).ready(function() {
		  $("#localText").text( localStorage.getItem("TextEntryName") );
			var ls = localStorage.getItem("ImageEntryName");
			var from = 5;
			var to = 5000000;
			$newls = ls.substring(from,to);
			console.log("$newls = " + $newls);
				$newnewls = "data:image/jpeg;" + $newls;
				console.log("$newnewls = " + $newnewls);
				$("#localImage").attr("src", $newnewls );
		});

Здесь я обрезаю первые 5 символов "data:", затем добавляю "data:image/jpeg;".
Костыль! Работает только для jpg.
И неизвестно, будет ли это работать на всех Андроид .
Почему всё же происходит обрезка типа картинки?!

upd. На одном англоязычном форуме получил ответ, что проблема связана с тем, что мобильный браузер не может распознать тип ресурса (mymetype), и порекомендовали использовать Crosswalk.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ACCNCC
@ACCNCC
Делаю игры!
Local Storage не для картинок! для картинок и других больших файлов используйте pouchdb https://pouchdb.com/guides/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы