【问题标题】:iOS App Migration - Update an old native app to Cordova, migrate dataiOS App Migration - 将旧的原生应用更新到 Cordova,迁移数据
【发布时间】:2015-08-02 02:58:42
【问题描述】:

我想知道是否有人可以对我在升级我的应用程序时想要进行的数据迁移提供任何见解。我正在使用 jquery mobile 将使用本机目标 C 编写的应用程序更新为基于科尔多瓦的网络视图。

现有应用具有使用 sqllite3.h 实现的“收藏夹”。我想知道当我们将更新发布到应用程序时,我们是否可以挂钩到这个现有的 sqlite 数据库,并将旧的“收藏夹”迁移到使用 localStorage 实现的新数据库中。

非常感谢任何见解!

【问题讨论】:

    标签: ios objective-c cordova sqlite local-storage


    【解决方案1】:

    我们只是做了类似的事情。我们的旧原生应用程序使用的是 CoreData。我们在 MainViewController 的 webViewDidFinishLoad 委托方法中添加了一个检查,以查看是否存在现有数据库。如果是,那么我们加载数据库,通过 localStorage 转换内容以供使用,然后设置一个标志,以便它不会再次尝试导入它。这是将其传输到 localStorage 的代码段。首先,我们将要传输的信息放入 NSMutableString 中,但将其格式化为 javascript 字典

        NSMutableString *dict = [NSMutableString string];
        [dict appendString:@"{"];
        [dict appendFormat:@"'notes':'%@'", notes];
        [dict appendFormat:@",'date':'%f'",seconds];
        [dict appendFormat:@",'count':'%d'",[ss.count intValue]];
        [dict appendFormat:@",'weather':'%@'",wx];
        [dict appendFormat:@",'location':'%@'",ss.event.location.name];
        [dict appendFormat:@",'latitude':'%@'",[ss.event.location.latitude stringValue]];
        [dict appendFormat:@",'longitude':'%@'",[ss.event.location.longitude stringValue]];
        [dict appendString:@"}"];
    

    然后我们像这样将它传递给javascript:

        [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"importMyOldData(%@);",dict]];
    

    这有效地调用了 javascript 方法,并将项目字典传递给它。然后你可以直接使用 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) );
    
        }
    

    【讨论】:

    • 你是如何使用 obj-c 转移到 localStorage 的?
    • 感谢您的评论。这个答案对我有用!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    • 1970-01-01
    • 2016-07-23
    相关资源
    最近更新 更多