android - 从旧的 Cordova 应用程序恢复 localStorage 数据

标签 android ios cordova xamarin local-storage

我们正在将应用程序从 Cordova 移植到 Xamarin.forms。现在恢复旧版本保存在 localStorage 中的数据对我们来说至关重要。

我试图在 Xamarin 中创建一个 WebView,然后显示我需要的 localStorage 字段,但它似乎完全是空的。但是,如果我重新安装旧的 cordova 应用程序,它仍然可以访问数据,因此它肯定会被存储并在安装 Xamarin 版本后继续存在。

Cordova 文档提到了一些关于在某些平台上拥有自己的 localStorage 实现的内容,但并不清楚具体是什么以及如何实现。

基本上我正在寻找一种方法来可靠地恢复 android 和 iOS 上的 localStorage 数据。

我目前可以想到两个方向:

  • 在 xamarin.forms 应用程序中嵌入 cordova
  • 提取进行本地存储的cordova部分并尝试使其与普通的webview
  • 一起工作

    最佳答案

    对于 iOS,我最终发现本地存储数据实际上仍在 Library/WebKit/LocalStorage/file__0.localstorage 中。但由于某种原因,Xamarin 的 webview 无法提供数据。可能通过一些摆弄你可以得到它(我认为它与基本 url 的差异有关)。

    因为我只需要数据,所以我直接用 sqlite.NET 打开了 localstorage 文件并以这种方式获取数据。 (注意:它以 Unicode 的 blob 形式存储,因此不是您所期望的 UTF-8)

    在 Android 上,情况非常相似,但在某些情况下,数据采用 UTF-8 格式,因此需要进行一些检测。 (在我的情况下:双向转换并检查结果值是否有点像有效的 JSON)

    关于android - 从旧的 Cordova 应用程序恢复 localStorage 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26465409/

    相关文章:

    cordova - Adobe Analytics Phonegap 插件

    ios - Cordova和iOS 8:状态栏处于隐藏状态

    java - Android NDK 可以将 Windows dll 包含到 Android 共享库中吗?

    java - 如果字符串上的语句不起作用

    iphone - 从 iPhone 向 Ruby on Rails (RoR) 服务器发送多部分请求

    android - PhoneGap 下载中没有 "droidgap"文件?

    android - 当前 Android Google Spreadsheet API 编写示例

    java - 我想在同一个 Activity 中停止后重新启动相机源

    ios - swift3 CoreData 获取返回 nil

    ios - UINavigationController 与 UISearchBar 和 UISearchDisplayController