0

我正在开发一个具有 WiFi 连接以检查状态的嵌入式系统。所以板载系统托管了一个网络服务器,我可以连接到它的 WiFi 网络。我可以看到网页。但我想让网站提供记录数据的下载。我有哪些适用于各种移动设备的选项。显然是 Android 和 iOS,但由于我是 Windows Phone 用户,所以我也喜欢这样。

对于嵌入式系统,它运行 Lighttpd,我们使用 jquery 和 jquery-mobile。我曾考虑在服务器上生成 PDF,但并非所有手机都安装了 PDF 阅读器。所以我想知道有没有其他人遇到过这种需要生成报告,将它们保存到手机,然后再将它们复制到计算机的情况。

4

1 回答 1

1

您可以查看 jIO ( website / github ),它允许您跨多个存储存储和自动同步 JSON 文档。

因此,您的用户可以从您的 webDav、xWiki、S3 或任何存储中提取 JSON(“任何”需要您编写自己的 jIO 连接器)。

文档将存储在 users 中localStorage。jIO 还提供了一个complexQueries模块,它允许您查询存储的文档,因此您将拥有一个同步的、轻量级的、仅限 javascript 的“数据库”模型。

PDF 也可以在客户端生成(例如使用jspdf),但是将文件保存在 JSON 中应该使它们更易于移植到不同的格式(例如在客户端上显示 JSON 数据的 HTML 页面)。

编辑:
我不完全知道您的要求是什么,但据我了解,我将设置一个复制修订存储,并在其中storage_list添加本地存储和我的“远程数据存储”(比如 webDav),我将在其中保存我的可下载数据.

因此,在初始化您的应用程序时,您将执行以下操作:

    var myReaderStorage = JIO.newJio({
        "type": "replicaterevision",
        "storage_list": [
            {
            "type": "revision",
            "sub_storage": 
                {
                // this will your users local storage
                "type": "local",
                "username": <string>,
                "application_name": <string>
                 }
            }, 
            {
            "type": "revision",
            "sub_storage": {
                "type": "dav",
                "username": <string>,
                "password": <string>,
                "url": <string>
                }
            }
        ]
    });

这会将您的用户本地存储与您的 webDav 存储“连接”,并设置一个修订系统。例如:

  1. 用户下载 app = new JIO 将被初始化。
  2. 如果你GET有一个文件,系统会尝试从本地存储(如果有)或远程存储中拉取。
  3. 一旦找到,所有存储将被同步,因此file-A_version1将在本地和 webdav 上可用
  4. 用户现在可以编辑文件(如果您允许),创建file-A_version2
  5. 调用PUT将保存到 localstorage 和 webDav
  6. 用户从桌面调用应用程序 = 再次初始化应用程序
  7. GET将尝试从 localStorage(仍然为空)或远程拉取。
  8. file-A_version2将从 webDav 加载并存储在 localStorage 中

这只是一个粗略的设置,但您应该明白这一点。你可以这样继续:

  1. 智能手机离线。用户在桌面创建上更改文件file-A_version3
  2. file-A_version3与 webDav 同步
  3. 下次用户通过智能手机访问应用程序时,系统会检测到冲突(file-A_version1在智能手机上,file-A_version3在 webDav 上)。这两个版本都将在智能手机上提供,您可以编写自己的逻辑来删除哪个版本REMOVE

如果您有任何问题,请告诉我。

于 2013-05-03T22:49:26.903 回答