繁体   English   中英

Tizen Wearable Web Widget App 中的文件管理 Tizen SDK 2.3.1 的数据路径

[英]File Management in Tizen Wearable Web Widget App's Data Path for Tizen SDK 2.3.1

我正在为 Samsung Gear Fit2 Pro 开发一个混合 tizen 应用程序(网络 + 本地服务)。 我想从 web ui 应用程序创建/设置一个配置并将其保存到应用程序的数据路径中,以便本机服务可以加载配置并使用它。
我正在尝试从/opt/usr/apps/pkg-id/data的 tizen web 应用程序创建一个config.txt文件。 我尝试过使用具有适当权限的 tizen 文件系统 API ,但它总是显示那些 API 函数未定义。 但是,如果我使用 resolve 那么文件创建仅适用于某些目录,例如documents 但是如果我的应用程序的数据文件夹中不存在,我想创建一个文件,即/opt/usr/apps/pkg-id/data或者如果已经存在则修改它。 我的代码中尝试写入数据文件夹中文件的相关部分如下所示。
有没有办法做到这一点? 或者我在使用文件系统 api 时做错了什么?

function app_get_datapath() {
    return "/opt/usr/apps/"+tizen.application.getCurrentApplication().appInfo.packageId+"/data/";
}

var fileHandleWrite = tizen.filesystem.openFile(app_get_datapath()+'config.txt', 'w');
fileHandleWrite.writeString(tizen.systeminfo.getCapability('http://tizen.org/system/tizenid'));
fileHandleWrite.close();

以下是特权列表:
在此处输入图像描述

我尝试过使用具有适当权限的 tizen 文件系统 API ,但它总是显示那些 API 函数未定义。

Samsung Gear Fit2 Pro 不支持所有新的 API。 可能您应该参考Tizen 3.0 API ,但自 Tizen 5.0 起支持您在代码片段中使用的 API

我的第二条评论是,您不应像在 app_get_datapath() 中那样使用通过字符串连接“手动”构建的路径。 它是高度非便携的解决方案,无法在某些设备上运行。 相反,我建议使用内置的虚拟根来获取您的应用程序私有存储 - wgt-private ,它将自动返回设备上的有效路径(无论设备是什么)。

示例(仅使用 3.0 API,对于 5.0 会容易得多):

(function createConfig() {
    function writeConfig(file) {
        file.openStream('w', function (stream) {
            stream.write(tizen.systeminfo.getCapability('http://tizen.org/system/tizenid'));
            stream.close();
            console.log('All done!!')
        })
    }

    tizen.filesystem.resolve("wgt-private/config.txt", function (file) {
        console.log('Config file exists - overwrite');
        writeConfig(file);
    }, function (e) {
        console.log('Config file does not exist - create');
        tizen.filesystem.resolve("wgt-private", function (dir) {
            var file = dir.createFile("config.txt");
            console.log("Created file")
            writeConfig(file);
        });
});
})()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM