Как мне использовать загруженный файл svg в моем приложении с помощью Tizen Web studio?

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

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

Размещение downloads / [имя_файла] или 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

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


person Scott Foster    schedule 24.06.2019    source источник


Ответы (2)


Я понимаю, что ваши вопросы касаются того, как показать изображение, загруженное с помощью tizen.download API, в теге 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));
          }
        });

person 15kokos    schedule 27.06.2019

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

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

введите здесь описание изображения

person Lunch Basketball    schedule 27.06.2019