我正在创建一个Cordova移动应用程序,该应用程序将具有一个本地数据库,用于存储一些用户选择的设置。我还将用户首选项发送到服务器。
即使他们删除了应用并重新安装,我也希望用户首选项能够保留 如果偏好在用户拥有的多个设备(通过他们的Google Play帐户或他们的Apple ID)中持续存在,那也是可取的,但这并不重要。
我不希望用户需要为我的应用创建帐户。
一个选项是获取设备的UDID并使用它重新连接到“相同”帐户,但据我所知,多次安装后实际上并不可靠。
理想可能就像Google Play帐户和iTunes帐户一样。我见过Android游戏和使用它的Apple应用程序。是否有Cordova插件可以访问这两个插件?
对于跨平台应用来说,知道它是否在以前运行的同一设备上运行,这是一个很好的简单解决方案吗?
答案 0 :(得分:1)
适用于iOS:
您可以使用this library执行此操作(或者只在代码中实现它以供您自己使用)。此过程的uid
保存在设备keystore
中, 即使卸载并重新安装多次 ,也会相同。此外,您可以使用iCloud synchronization为此用户设置相同的uid
。
适用于Android:
这个SO answer是一个很好的解决方案。虽然如果用户闪光手机可能会改变。如果对每个设备都有一个唯一ID非常关键,imei
对于Android手机来说将是一个不错的选择,但需要READ_PHONE_STATE
权限。要在设备上同步id
,您需要将其映射到登录信息等。据我所知,如果没有这样的映射,你就无法做到。
要在Cordova
中使用这些解决方案,您需要将此代码放入库中(即.jar
或.framework
文件)并为您的Cordova
应用创建一个插件调用这些库的getUid()
方法(假设您将该方法命名为返回唯一标识符getUid
)。
答案 1 :(得分:1)
深入研究此问题后,我可以获得一个现成的插件,可以解决此问题 - UniqueDeviceID plugin
该插件声称在卸载应用后ID仍然相同。但我可以看到有人在应用更新后面临issue因为它返回不同的ID。一些解决方案也已发布在同一问题评论中。
尽管如此,这是我能找到的唯一符合OP要求的插件。即使需要进行一些调整来解决一些问题,我觉得这个插件应该是起点。希望能帮助到你。干杯