1

我认为这是一个愚蠢的问题;无论如何,为了清除任何可能的假设,我会问它:我有 2 个 iOS 应用程序:一个免费版本和另一个付费版本。假设用户正在使用免费版本,该版本在设备中有一些 SQLite 表。现在,用户安装付费版本的 App(不是 App 内购买,而是单独的付费版本);现在,这个新安装的付费版本可以访问设备中已经存在的免费应用程序的sqlite数据吗?

4

2 回答 2

2

应用程序不能直接访问其他应用程序的数据。但是,在像您这样的情况下,您可以编写两个应用程序来访问一个通用的UIPasteboard. 结合具有自定义 URL 方案的每个应用程序,有一种方法可以让您编写免费/付费应用程序,以便您可以在两个应用程序之间传输数据。

以下是该过程的概述:

  1. 应用 A(完整版)查找应用 B(精简版)的自定义 URL 方案。
  2. 如果发现在适当的地方显示“转移”按钮。
  3. 用户点击 App A 中的按钮
  4. 应用 A 启动应用 B,其 URL 显示“将您的数据发送给我”。
  5. 应用 A 退出,应用 B 启动。
  6. 应用 B 处理 URL 请求。
  7. App B 将其数据打包并放入一个命名的 UIPasteboard(名称硬编码到 App A 和 App B 中)。
  8. 应用 B 启动应用 A,其 URL 显示“您有数据”。
  9. 应用 B 存在,应用 A 重新启动。
  10. 应用 A 处理 URL 请求。
  11. 应用 A 从粘贴板中获取数据,将其从粘贴板中删除,将数据安装到自身中,然后刷新。
  12. App A 通知用户转移完成。

付费应用程序应该有一个类似“myapppaid”的自定义方案,免费版本应该有一个自定义方案“myappfree”。

于 2013-09-12T14:22:34.227 回答
0

它只与应用程序关联,然后不直接,因为它只存在于应用程序沙箱中,该沙箱仅对应用程序可用。如果它可以通过 iCloud 获得,那么您应该能够,因为这就是一些应用程序在实现新的独立版本时管理“升级”的方式。

于 2013-09-12T12:51:30.283 回答