【问题标题】:Local storage using OpenUI5 and Apache Cordova使用 OpenUI5 和 Apache Cordova 的本地存储
【发布时间】:2014-09-29 19:23:51
【问题描述】:

我正在使用 OpenUI5 和 Cordova 构建一个移动应用程序。此应用使用 OData 服务,但必须支持完整的离线功能。使用 Cordova 存储数据有很多选项,例如 LocalStorage、Web SQL 甚至 FileWriter。我还发现 OpenUI5 框架提供 jQuery.sap.storage 来通过 LocalStorage 存储数据,但由于存储容量有限(5MB),我不能考虑这个选项。

是否可以从 OData 服务请求整个数据模型并将其转换为 JSON 模型?因为如果有任何方法可以做到这一点,我可以使用 FileWriter 为模型中的每个实体(和元数据文件)编写文件,并在应用程序离线时使用这个模型。

有没有人尝试过这样的事情?

已编辑

感谢您的回答...

我正在使用 jumpifzero 技巧将 OData 服务中的数据设置到 Json 模型中,如下所示:

    var sServiceUrl = "http://address:port/DataService.svc/";       
    var odataModel = new sap.ui.model.odata.ODataModel(sServiceUrl, true);
    var jsonModel = new sap.ui.model.json.JSONModel();

    odataModel.read("/Dates", {
        async: false,
        success: function (odata, response) {
            jsonModel.setData({ Dates: odata.results });
        }
    });

    this.setModel(jsonModel);

【问题讨论】:

    标签: javascript jquery cordova sapui5


    【解决方案1】:

    您还可以使用 .read 方法读取每个实体集的 odata,无需任何过滤器。在赋予读取的成功函数中,您可以将 JS 对象放入 JSON 模型中。 您可以制作一个图层,在线时从 odata 填充 JSON 模型,离线时从本地存储填充 JSON 模型。

    【讨论】:

      【解决方案2】:

      您可以选择使用 SAP 移动平台附带的离线 Kapsel 插件(由 SAP 开发的 Cordova 插件)创建离线应用程序 (CRUD)。您应该购买 SAP 移动平台的许可证。 你可以在这里找到更多信息:http://scn.sap.com/docs/DOC-58063

      【讨论】:

        【解决方案3】:

        我不建议离线 Kapsel 插件。它还不够成熟,无法使用它,实际上它正在开发中。此外,您还需要一个 SMP 服务器来实现离线功能。 我宁愿说您应该使用根据您的需要形成的半生不熟的解决方案,例如:http://coenraets.org/blog/2012/05/simple-offline-data-synchronization-for-mobile-web-and-phonegap-applications/

        【讨论】:

          猜你喜欢
          • 2021-08-17
          • 2014-04-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-11-02
          • 1970-01-01
          • 2017-08-03
          • 2012-03-11
          相关资源
          最近更新 更多