Как использовать загруженный файл SVG в приложении с помощью веб-студии Tizen? - PullRequest
0 голосов
/ 24 июня 2019

Я могу загрузить SVG-файл, кроме того, я могу отображать SVG-файлы, как вы это обычно делаете внутри тега изображения. Я не знаю, как получить доступ к расположению папки для загрузки или к папке wgt-private, чтобы я мог загружать изображения в часы клиента и затем использовать загруженную версию.

Я уверен, что мой файл загружается, так как я вошел в систему при успешной загрузке, и когда я перечисляю элементы в каталоге, файл появляется.

Размещение загрузок / [имя_файла] или wgt-private / [имя_файла] не работает, так как это виртуальные расположения файлов, однако я не знаю, как получить доступ к этим файлам в приложении без использования методов файловой системы.

Скачать:

var download_obj = new tizen.DownloadRequest('someFile.svg', 'wgt-private');//Hidden the actual location however this file does display when enterting the whole file location

    tizen.download.start(download_obj, {
          onprogress: function(id, receivedSize, totalSize) {
            console.log(id);
            console.log(receivedSize);
            console.log(totalSize);
          },
          onpaused: function(id) {
            console.log(id);
          },
          oncanceled: function(id) {
            console.log(id);
          },
          oncompleted: function(id, fullPath) {
            console.log(id);
            console.log(fullPath);
          },
          onfailed: function(id, error) {
            console.log(id);
            console.log(JSON.stringify(error));
          }
        });

Полный путь выглядит как: wgt-private / someFile.svg

Не отображается, так как отображает ошибку файла в консоли при всех попытках.

Ответы [ 2 ]

2 голосов
/ 27 июня 2019

Я понимаю, что ваши вопросы касаются того, как показать изображение, загруженное с помощью API tizen.download в теге html img .

Я вижу два обходных пути, которые могут вам в этом помочь:

  1. Вы можете использовать API файловой системы (чего вы хотели бы избежать), НО начиная с 5.0 существует метод, который не требует дополнительных привилегий, и я надеюсь, что он будет соответствовать вашим потребностям - FileSystemManager.toURI () . Он просто получает путь к файлу (возвращаемый API загрузки) и возвращает полный URI, который можно использовать в img .
  2. Я заметил, что загрузка в непубличные каталоги на устройстве, API загрузки возвращает «скрытый» путь, который использует виртуальный корень, но при загрузке в общий каталог в виде «загрузок» возвращается полный путь, и он работает для img .

Если оба из вышеперечисленных недопустимы для вас, я боюсь, что единственной альтернативой является использование обычного API tizen.filesystem и разрешение пути из API загрузки, а затем использование функции File.toURI () чтобы получить путь.

var link = "http://techslides.com/demos/samples/sample.jpg"
var download_obj = new tizen.DownloadRequest(link, 'wgt-private');//Hidden the actual location however this file does display when enterting the whole file location

    tizen.download.start(download_obj, {
          oncompleted: function(id, fullPath) {
            console.log("completed " + id + " : " + fullPath);
            tizen.filesystem.resolve(fullPath, (s)=>{console.log("Resovled full path: " + s.toURI())}, (e) => {console.log(e)})
          },
          onfailed: function(id, error) {
            console.log("failed " + id);
            console.log(JSON.stringify(error));
          }
        });
0 голосов
/ 27 июня 2019

Вы можете найти подходящий пример веб-приложения: новый проект Tizen - Пример - Mobile 4.0 - Веб-приложение - Контент - Диспетчер загрузки

Откройте index.html и замените https://www.sample -videos.com / video / mkv / 720 / big_buck_bunny_720p_10mb.mkv с вашим адресом файла.

enter image description here

...