【问题标题】:File Management in Tizen Wearable Web Widget App's Data Path for Tizen SDK 2.3.1Tizen SDK 2.3.1 的 Tizen Wearable Web Widget App 数据路径中的文件管理
【发布时间】:2020-11-25 20:54:59
【问题描述】:

我正在为 Samsung Gear Fit2 Pro 开发一个混合 tizen 应用程序(网络 + 本地服务)。我想从 web ui 应用程序创建/设置一个配置并将其保存到应用程序的数据路径中,以便本机服务可以加载配置并使用它。
我正在尝试从/opt/usr/apps/pkg-id/data 的tizen Web 应用程序创建一个config.txt 文件。我尝试过使用具有适当权限的 tizen 文件系统 API,但它总是显示这些 API 函数未定义。但是,如果我使用解析,则文件创建仅适用于某些目录,例如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();

以下是权限列表:

【问题讨论】:

    标签: javascript tizen tizen-web-app tizen-wearable-sdk


    【解决方案1】:

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

    Samsung Gear Fit2 Pro 不支持所有新的 API。可能你应该参考Tizen 3.0 API,但是你在代码sn-p中使用的API是supported since Tizen 5.0

    我的第二条评论是,您不应像在 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);
            });
    });
    })()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多