将本地存储从Cordova应用迁移到Android应用 [英] Migrating local storage from Cordova app to Android App

查看:110
本文介绍了将本地存储从Cordova应用迁移到Android应用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们在Playstore中有一个使用Cordova开发的应用程序. 现在,我们已经在本机Android中重建了整个应用程序.

We have an application in Playstore which is developed using Cordova. Now we have rebuilt the total app in Native Android.

现在,我们希望在不注销的情况下将用户从先前的应用程序升级到新的应用程序.

Now we want to upgrade the user from the previous app to the new app without logout.

为此,如何将Cordova(window.localStorage)的本地数据迁移到Android共享首选项?

For that, how to migrate local data of Cordova(window.localStorage) to Android shared preferences?

推荐答案

最后,我已经按照以下步骤迁移了本地数据

Finally, I have migrated local data as follows

  1. 在活动/片段"视图中添加webView和

  1. In Activity/Fragment view add webView and

    final WebView webView = findViewById(R.id.webView);
    WebSettings webSetting = webView.getSettings();
    webSetting.setJavaScriptEnabled(true);
    webSetting.setDomStorageEnabled(true);

    webView.setWebViewClient(new WebViewClient());
    webView.addJavascriptInterface(new MyJavaScriptInterface(), "MyHandler");
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        WebView.setWebContentsDebuggingEnabled(true);
    }

    webView.loadUrl("file:///android_asset/readData.html");

  • 创建类MyJavaScriptInterface以便在webView和本机之间进行通信,如下所示

  • Create Class MyJavaScriptInterface to communicate between webView and native as follows

    公共类MyJavaScriptInterface {

    public class MyJavaScriptInterface {

        @JavascriptInterface
        public void sendKeyValue(String key, String value) {
            Log.d("sendKeyValue", "key:" + key + " value:" + value);
        }
     }
    

  • 在资产文件夹中添加以下html文件

  • In assets folder add following html file

     <!DOCTYPE html>
        <html>
        <body>
        <div id="result"></div>
        <div id="resultCount"></div>
        <script>
                 // Check browser support
                 if (typeof(Storage) !== "undefined") {
    
                 for(i = 0; i < localStorage.length; i++) {
                    console.log("key "+i+" "+localStorage.key(i));
                    console.log("value"+i+" "+localStorage.key(i)+"= "+localStorage.getItem(localStorage.key(i)));
                    window.MyHandler.sendKeyValue(localStorage.key(i), localStorage.getItem(localStorage.key(i)));
                    }
                 }
    
              </script>
        </body>
        </html>
    

    这篇关于将本地存储从Cordova应用迁移到Android应用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

  • 查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆