我想知道是否有人可以在升级我的应用程序时对我想要的数据迁移有所了解。我正在使用jquery mobile将基于原生目标C的应用程序更新为基于cordova的Web视图。
现有的应用程序有#34;收藏夹"这是使用sqllite3.h实现的。我想知道当我们将更新发布到应用程序时,我们是否可以挂钩到现有的sqlite数据库,并迁移旧的"收藏夹"进入新数据库,使用localStorage实现。
非常感谢任何见解!
答案 0 :(得分:1)
我们刚刚做了类似的事情。我们的旧本机应用程序正在使用CoreData。我们在webViewDidFinishLoad委托方法中添加了MainViewController中的检查,以查看是否存在现有数据库。如果是,那么我们加载数据库,转换内容以便通过localStorage使用,然后设置一个标志,以便它不会再尝试导入它。这是将代码段转移到localStorage的代码段。首先,我们将要转移的信息放入NSMutableString,但将其格式化为javascript字典
[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"importMyOldData(%@);",dict]];
然后我们将其传递到javascript中,如此:
function importMyOldData( oldData )
{
// if you want to inspect each item
var notes = oldData.notes;
localStorage.setItem( "NoteKey", notes );
// if you want to dump the whole thing
localStorage.setItem( "MyKey", JSON.stringify(oldData) );
}
这有效地调用了javascript方法,并将项目字典传递给它。然后,您可以使用Javascript将其放入本地存储中,例如:
{{1}}