PhoneGap Build: загрузите изображение в одну из папок вашего приложения
Я могу загрузить изображение, если указать путь напрямую
Файл: /// хранение / sdcard0 /
Как я могу сохранить изображение в одну из папок в моем приложении? Я старалсяэтот подход, чтобы установить путь к приложению, но это не работает для меня.
Это то, что я использую до сих пор, и это работает, если вы хотите сохранить и изображение на SDCard:
var fileName = "myImage.png";
var fileTransfer = new FileTransfer();
var uri = encodeURI("http://my.url.to.image/myImage.png");
var filePath = "file:///storage/sdcard0/uploads/myImage.png";
fileTransfer.download(
uri,
filePath,
function(entry) {
alert("download complete: " + entry.fullPath);
console.log("download complete: " + entry.fullPath);
},
function(error) {
alert("download error source/target/code:\n" + error.source +" \n||| "+error.target+" \n||| "+error.code);
console.log("download error source/target/code " + error.source+" / "+error.target+" / "+error.code);
}
);
Если я использую эту функцию:
function getPhoneGapPath() {
'use strict';
var path = window.location.pathname;
var phoneGapPath = path.substring(0, path.lastIndexOf('/') + 1);
return phoneGapPath;
}
Я получаю / android_asset / www /. Как бы я получить правильный путь к своему приложению?
Приложение использует AngularJS и не загружается в onDeviceReady (разработчик до меня сделал это таким образом, а теперь изменил его на что-то вродеэтот вне меня (пытался, но не работал)).
Был задан еще один вопрос, на который я могу сослатьсяВот.
Я тоже пробовалэтот, этот, этот а такжеэтот но никто не работал для меня. Я получил "" для fullPath, и недавно мне удалось распечатать путь с помощью .toURL (), и это было "cdvfile: // localhost / persistent".Приведенный выше код загрузки теперь также работает, если я использую
filePath = "cdvfile://localhost/persistent/MyAppID/uploads/myImage.png";
но это создает папку / MyAppID / uploads в / storage / sdcard0, что опять плохо. Мое приложение должно получить изображения с
<img src="uploads/myImage.png" alt="myimg"/>
Еще одна полезная ссылкаВот но это не дает никакой помощи относительно того, как писать в предварительно созданную папку вашего собственного приложения.
РЕДАКТИРОВАТЬ: Насколько я понял, вы не можете писать в своем приложении (только для чтения). Вот почему я пытался ссылаться на изображения с SDCard с
<img src="file:///storage/sdcard0/Android/data/com.app.my/cache/myImage.png" alt="myimg"/>
и это работает! :) К сожалению, это жестко запрограммировано и не очень хорошо, поскольку другие телефоны могут иметь другое постоянное местоположение. Если я попробую
<img src="cdvfile://localhost/persistent/Android/data/com.app.my/cache/myImage.png" alt="myimg"/>
это не относится к изображению: / (оно загружает его в хранилище / sdcard0 / Android / data / com.app.my / cache / Хотя)