【问题标题】:Shipping SQLite dbs with Chrome Extensions?使用 Chrome 扩展程序发送 SQLite 数据库?
【发布时间】:2012-02-12 02:50:31
【问题描述】:

我希望能够在 Chrome 扩展中包含一个 sqlite 文件,并使其能够在该数据库上执行读/写操作。我将把它用于进程对讲(由于缺乏替代品),所以我可以覆盖配置/将命令行参数/等传递给 Chrome。

有人可以指点我正确的方向吗?

【问题讨论】:

    标签: google-chrome google-chrome-extension google-chrome-devtools


    【解决方案1】:

    您无法通过发送文件 AFAIK 来做您想做的事,但由于 Chrome 中的 WebSQL 本质上是 SQLite,您可以在代码中将“数据库”作为 JSON 数据结构发送,并使用它在 Chrome 中初始化 WebSQL 实例您为您的应用程序/扩展初始化 WebSQL 数据库。

    【讨论】:

      【解决方案2】:

      Chrome 在使用外部文件方面非常严格。

      无论如何,Chrome 扩展程序应该使用localStorage。比如:

      localStorage["varName"] = data;
      

      localStorage.varName = data
      

      var data = localStorage.varName
      

      查看更多信息here

      【讨论】:

      • 我认为这没有帮助。我需要 Chrome 来传达相应文件的精确位置,这涉及将其路径写入一个我没有涉及 [...] 的路径的文件中。
      【解决方案3】:

      在这里。 部分解决。 Chrome 支持传递--user-data-dir=%appdata%/whatever

      在我的外部应用程序中,我可以访问%appdata%/Whatever/databases/Databases.db,打开Databases 表,按来源过滤,获取ID 并打开%appdata%/Whatever/databases/origin/ID。这有点骇人听闻,但可以。

      现在让我感到困惑的是:

      • 它并没有对我尝试 openDatabase('X','1.0','plm',100*1024*1024); 大喊大叫
      • 不知道起源中的 _0 后缀是什么
      • chrome-extension_bhapcikibejcipnnpimookjaibhlddfd_0 可能不一致;在其他应用程序中进行硬编码是否安全?

      【讨论】:

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