我有一个用旧版本编写的Chrome应用程序,我现在正在更新它。
我想知道如何在更新中迁移数据,因为根本无法访问“localStorage”。如何防止数据丢失? chrome会自动将键/值从“localStorage”移动到“chrome.storage”吗?
答案 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年之后,现在无法做任何事情。