【问题标题】:phonegap android plugin for user preferences用于用户偏好的 phonegap android 插件
【发布时间】:2015-05-05 17:46:13
【问题描述】:

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

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

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

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

谢谢,

【问题讨论】:

  • 为什么必须要有两个app之间的依赖(即配置)?为什么不将用户偏好存储在两个应用都可以引用的远程位置?
  • 这可以工作,但是应用程序需要能够在没有任何互联网连接的情况下工作。

标签: java javascript android cordova phonegap-plugins


【解决方案1】:

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

第一个选项

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

第二个选项

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

第三个选项

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

第四个选项

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

【讨论】:

    【解决方案2】:

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

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

    否则,这些应用程序大多是沙盒化的,因此(正如 @BenSmith 所建议的那样)远程位置将是您的最佳选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-22
      • 2018-04-28
      • 2012-11-22
      • 2013-09-17
      相关资源
      最近更新 更多