我们正在将应用程序从 Cordova 移植到 Xamarin.forms。现在恢复旧版本保存在 localStorage 中的数据对我们来说至关重要。
我试图在 Xamarin 中创建一个 WebView,然后显示我需要的 localStorage 字段,但它似乎完全是空的。但是,如果我重新安装旧的 cordova 应用程序,它仍然可以访问数据,因此它肯定会被存储并在安装 Xamarin 版本后继续存在。
Cordova 文档提到了一些关于在某些平台上拥有自己的 localStorage 实现的内容,但并不清楚具体是什么以及如何实现。
基本上我正在寻找一种方法来可靠地恢复 android 和 iOS 上的 localStorage 数据。
我目前可以想到两个方向:
最佳答案
对于 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/