【问题标题】:Chrome Extension: Local Storage, how to exportChrome 扩展:本地存储,如何导出
【发布时间】:2014-06-03 08:17:48
【问题描述】:

我有一个 chrome 扩展,可以将一堆数据保存到 chrome.storage.local。我试图找到简单的方法来导出这些数据并将其打包成一个文件。我不受它是什么类型的文件(JSON、CSV 等)的限制,我只需要能够将内容导出到一个独立的(并且可发送的)文件中。该扩展仅在本地运行,用户可以访问所有本地文件。

【问题讨论】:

    标签: google-chrome-extension local-storage


    【解决方案1】:

    首先,您需要获取所有数据。
    然后序列化结果。
    最后,将其作为下载提供给用户。

    chrome.storage.local.get(null, function(items) { // null implies all items
        // Convert object to a string.
        var result = JSON.stringify(items);
    
        // Save as file
        var url = 'data:application/json;base64,' + btoa(result);
        chrome.downloads.download({
            url: url,
            filename: 'filename_of_exported_file.json'
        });
    });
    

    要使用chrome.downloads.download方法,除了在manifest文件中声明storage权限外,还需要声明"downloads"权限。

    【讨论】:

    • 感谢您的回答。抱歉,我验证有点延迟。只要我有能力,并假设这是最好的路线,我会标记为正确的。谢谢!
    • 我得到的 chrome 没有定义我应该在我的服务中导入什么。文件?
    • 如何将此 JSON 文件恢复到本地存储?谢谢
    【解决方案2】:

    你应该看这里:https://groups.google.com/a/chromium.org/forum/#!topic/chromium-extensions/AzO_taH2b7U

    它显示了将 chrome 本地存储导出到 JSON。

    希望对你有帮助

    【讨论】:

    • 那不是chrome.storage,而是localStorage
    • @unit998x,感谢您的回复。我以前看过这篇文章,它可以很好地以 JSON 格式显示内容。但这不会提示用户下载输出。我听说有人建议使用 HTML5 的文件处理,但如果有一个 chrome API 来处理它会更容易(因为它已经存储在 chrome.storage 中)。感谢您的帮助!
    猜你喜欢
    • 2012-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多