2016-02-05 53 views
2

我有一个用旧版本编写的chrome应用程序,现在我正在更新它。将数据从localStorage迁移到chrome应用中的chrome.storage

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

+0

您可以从Chrome检查器中看到localStorage数据(ctrl + shift + i)。我认为你必须手动迁移它。 –

回答

1

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

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

在这种情况下,我担心你会完全失去数据。 localStorage已不再适用于您应用的任何环境,并且不会自动迁移。


更新2015年4月9日:旧版封装应用折旧进度进行了修订。在八月份,所有现有的旧版套餐应用列表将从Chrome网上应用店的搜索和浏览功能中删除。现有的传统打包应用程序可以被更新到Chrome浏览器停止加载它们在二月份的2016年

如果Web商店仍然接受更新的遗留应用程序,您需要自己做出迁移步骤。我不知道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"); }); 

上传这样一个版本的存储,只要您可以让人们获得并迁移,然后更新到适当的应用程序。

有些没有在这个时间段内更新的人仍然会丢失他们的数据,但是现在没有什么可以做的现在,在没有迁移后的1年内即legacy apps were deprecated

+0

我认为您仍然可以更新旧版应用程序,因此我只需执行一个中间步骤,将其保存为“localStorage”和“chrome.storage”,然后再更新到最近的应用程序版本。谢谢您的帮助! – noobiePT