将本地存储从 Cordova 迁移到 Xamarin 应用程序

Posted

技术标签:

【中文标题】将本地存储从 Cordova 迁移到 Xamarin 应用程序【英文标题】:Migrating local storage from Cordova to Xamarin App 【发布时间】:2017-01-08 16:48:53 【问题描述】:

我们计划将我们的应用(iosandroid、WP)从 Cordova/Ionic 迁移到 Xamarin。

基本计划是在 Xamarin 中重建所有内容,在商店中保留相同的 appid,并仅提供新应用作为“更新”。

现在是棘手的部分。今天,我们的用户通过存储在设备上的令牌使用 window.localStorage.setItemin Cordova 登录。

如何在 Xamarin 中访问这些数据?它是否存储在我可以在启动时查找并进行转换的文件中?格式是什么?是明文还是加密?

任何帮助将不胜感激。谢谢!

【问题讨论】:

您为什么要这样做?为什么不简单地要求用户再次登录呢?您可以在发行说明中提及它。我担心您尝试实现的目标可能会暴露安全漏洞。 这真的取决于 Cordova 的 localStorage 到底在做什么。我试着挖掘了一下,在 iOS 上它似乎通过 WebKit 使用本地浏览器存储。我似乎找不到适用于 Android 或 Windows 的等效代码。 @Demitrian 我不让他们再次登录,因为我们的用户可能不记得他们的密码,然后他们会淹没我们的支持。您能否告诉我您在迁移已存储在设备/应用程序上的数据时发现了哪种安全漏洞? 【参考方案1】:

所以经过更多研究后,我发现 Cordova 中的 localStorage 根本不是持久的。

有关更多信息,请查看以下内容:

Don't Assume localStorage Will Always Work In Your Hybrid App (iOS)(Cordova) localStorage can get unexpectedly cleared when device storage is low

所以无论如何我都需要在我的 Cordova 应用程序中修复这个奇怪的错误,我决定使用 Cordova File Plugin 将令牌“移动”到 Cordova 中的磁盘,现在 localStorage 的内容是“只是磁盘上的一个文件” .

通过这样做,我有效地回答了我自己关于如何“从本地存储迁移数据”的问题;)

我希望这可以帮助处于相同情况的人。

【讨论】:

感谢您回答这个问题。你找到其他方法了吗?如果我使用cordova文件插件将令牌移动到磁盘,您能否指出有关如何访问localStorage的Xamarin代码?

以上是关于将本地存储从 Cordova 迁移到 Xamarin 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Cordova [Android 平台] 从 API 29 迁移到 API 30

将 iCloud 迁移到本地持久存储

将使用相机拍摄的照片捕获并存储到本地数据库/PhoneGap/Cordova/iOS

将 Kettle 文件迁移到存储库

如何将 Ionic Cordova 3 迁移到 Ionic Cordova 5?

将 Cordova 迁移到电容器 - 错误:包 android.support.v4.content 不存在 [重复]