Chrome 扩展:本地存储,如何导出
Posted
技术标签:
【中文标题】Chrome 扩展:本地存储,如何导出【英文标题】:Chrome Extension: Local Storage, how to export 【发布时间】:2014-06-03 08:17:48 【问题描述】:我有一个 chrome 扩展,可以将一堆数据保存到 chrome.storage.local。我试图找到简单的方法来导出这些数据并将其打包成一个文件。我不受它是什么类型的文件(JSON、CSV 等)的限制,我只需要能够将内容导出到一个独立的(并且可发送的)文件中。该扩展仅在本地运行,用户可以访问所有本地文件。
【问题讨论】:
【参考方案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 中)。感谢您的帮助!以上是关于Chrome 扩展:本地存储,如何导出的主要内容,如果未能解决你的问题,请参考以下文章
Chrome扩展开发之三——Chrome扩展中的数据本地存储和下载
如何链接到 Google Chrome 扩展程序的本地图像?