用于用户首选项的PhoneGap Android插件



我有两个Android应用程序,一个用Java编写,另一个用JavaScript编写,用PhoneGap应用程序包裹。我需要我的Java应用程序来设置用户偏好(字符串)和JS应用程序来获取此字符串。

在我的Java应用程序中设置用户偏好后,我现在需要知道如何在JS应用程序中检索它。如何?我尝试了两个PhoneGap插件,(https://github.com/macdonst/apppreferences和https://github.com/apla/me.apla.cordova.app-preferences)

但是,它们似乎并没有构建以从其他应用程序中获取用户偏好。

我还应该尝试什么?我应该坚持用户偏好吗?

谢谢,

Preferences在应用程序上下文中使用和组织。这意味着一个应用程序的偏好不属于其他应用程序。我建议有一些选择。

第一个选项

如果一个应用程序定义了使用MODE_WORLD_WRITEABLE模式的偏好,则仅在已知软件包名称的情况下,其他应用程序才能达到该偏好。如果未通过MODE_WORLD_WRITEABLE模式定义偏好,则不会通过其他应用程序读取偏好。MODE_WORLD_WRITEABLEPreferences中的模式之一,同时定义了Android中的新偏好。有一个先前的线程回答如何读取其他应用程序的偏好。但是,MODE_WORLD_WRITEABLE模式在API级别17中被弃用。如果您的应用程序的目标是API级别17及以上,则不应坚持Preferences

第二选项

另一方面,两个应用程序可以在移动设备上共享相同的数据库。您可以简单地创建一个包含两个应用程序共享和读取的首选项的表。这是此选项的另一个链接,描述了如何处理此类操作。

第三选项

其他方式,您可以利用Java中对象序列化的优势。我的意思是,您可以编写由应用程序定义的配置或首选项组成的类。该类应实现Serializable接口。当需要时,该类可以写在文件或其他应用程序可以到达的某个位置上。但是,由于一致性,此选项将无法安全。文件可以损坏,删除等。

第四选项

正如@Bensmith所述,您可以在两个应用程序都可以访问的远程位置上存储首选项。

一个可能的选项是用设置写出文件,并使用其他应用程序在设置中读取。我不是100%确定一个应用程序可以创建文件,但可能值得研究。

当然,这可能需要用户干预(例如选择保存文件的位置),因此这可能对您不起作用。

失败,这些应用程序大多是沙盒,因此(如@Bensmith的建议)远程位置将是您最好的选择。

最新更新