将数据从localStorage迁移到chrome应用程序中的chrome.storage

时间:2016-02-05 00:47:49

标签: javascript google-chrome google-chrome-extension

我有一个用旧版本编写的Chrome应用程序,我现在正在更新它。

我想知道如何在更新中迁移数据,因为根本无法访问“localStorage”。如何防止数据丢失? chrome会自动将键/值从“localStorage”移动到“chrome.storage”吗?

1 个答案:

答案 0 :(得分:1)

这是一个非常有趣的问题。

那么,您是否正在将“旧”应用迁移到新的Chrome应用平台?我假设您无法再上传旧应用更新,只能更新应用更新?

在这种情况下,我担心你会完全失去数据。您的应用的任何上下文都不再提供localStorage,不会自动迁移。

  

2015年4月9日更新:旧版打包应用程序弃用计划已经过修订。 8月,所有现有的旧打包应用商品详情都将从Chrome网上应用店的搜索和浏览功能中删除。现有的旧版打包应用程序可以更新,直到Chrome在2016年2月停止加载它们。

如果网上应用店仍然接受旧版应用的更新,则需要自行进行迁移。我不确定遗留应用中是否chrome.storage可用(请注意,它需要"storage"权限),但如果是,则执行迁移的中间版本,例如:

var storage = {};
for (var i = 0; i < localStorage.length; i++) {
  // You may need to deserialize the value
  storage[localStorage.key(i)] = localStorage.getItem(localStorage.key(i));
}
chrome.storage.local.set(storage, function() { console.log("Migrated"); });

将此类版本上传到商店,等待人们获取并迁移,然后更新到合适的应用。

有些未在此时间范围内更新的人仍会丢失他们的数据,但在legacy apps were deprecated未迁移1。5年之后,现在无法做任何事情。