如何使用 Tizen Web Studio 在我的应用程序中使用下载的 svg 文件?

How do I use a downloaded svg file within my application using Tizen Web studio?

我可以下载一个 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

在所有尝试中都不显示为在控制台中显示文件错误。

您可以找到合适的 Web 示例应用程序:新的 Tizen 项目 - 示例 - Mobile 4.0 - Web 应用程序 - 内容 - 下载管理器

打开 index.html 并将 https://www.sample-videos.com/video/mkv/720/big_buck_bunny_720p_10mb.mkv 替换为您的文件地址。

我了解到您的问题与如何在 html img 标签中显示使用 tizen.download API 下载的图像有关。

我可以看到两个可以帮助您解决问题的解决方法:

  1. 您可以使用文件系统 API(您希望避免使用),但是从 5.0 开始有一种方法不需要额外的权限,我希望它能满足您的需求 - FileSystemManager.toURI()。它只是获取文件的路径(通过下载 API 返回)和 returns 完整的 URI,可以在 img.
  2. 中使用
  3. 我注意到下载到设备上的 non-public 目录,下载 API returns 'hidden' 使用虚拟根目录的路径,但是当下载到 public 目录为 'downloads',返回完整路径,它也适用于 img

如果以上两个都不适合您,恐怕唯一的选择是使用常规 tizen.filesystem API 并从下载 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));
          }
        });