phonegap android 用户偏好插件

phonegap android plugin for user preferences

我有两个 android 应用程序,一个用 Java 编写,另一个用 javascript 编写,封装在一个 phonegap 应用程序中。我需要我的 java 应用程序来设置用户首选项(字符串)和 js 应用程序来获取此字符串。

在我的 java 应用程序中设置用户首选项后,我现在需要知道如何在我的 js 应用程序中检索它。如何?我已经尝试了两个 phonegap 插件,(https://github.com/macdonst/AppPreferences and https://github.com/apla/me.apla.cordova.app-preferences)

然而,它们似乎并不是为了从其他应用程序获取用户偏好而构建的。

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

谢谢,

一个可能的选择是写出一个包含设置的文件,然后使用其他应用程序读取设置。 我不是 100% 确定应用程序可以创建文件,但它可能值得研究。

当然这可能需要用户干预(EG select 保存文件的位置)所以这可能不适合你。

如果做不到这一点,这些应用程序大多是沙盒化的,因此(正如@BenSmith 所建议的那样)远程位置将是您最好的选择。

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

第一个选项

如果一个应用程序使用 MODE_WORLD_WRITEABLE 模式定义首选项,则当且仅当包名称已知时,其他应用程序才能达到该首选项。如果未使用 MODE_WORLD_WRITEABLE 模式定义首选项,则其他应用程序不会读取首选项。 MODE_WORLD_WRITEABLEPreferences 中的一种模式,同时在 Android 中定义了新的偏好。有一个 previous 线程回答如何读取其他应用程序的首选项。但是,MODE_WORLD_WRITEABLE 模式在 API 级别 17 中被弃用。如果您的应用程序的目标是 API 级别 17 及以上,您不应该坚持 Preferences.

第二个选项

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

第三个选项

其他方式,您可以利用 Java 中的对象序列化。我的意思是,您可以编写一个由您的应用程序定义的配置或首选项组成的 class。 class 应该实现 Serializable 接口。需要时,可以将 class 写入文件或其他应用程序可以访问的特定位置。但是,由于一致性,此选项将不安全。文件可能会损坏、删除等

第四个选项

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