Ios UIPasteboard(通用PasteBoard)项目寿命

Ios UIPasteboard(通用PasteBoard)项目寿命,ios,cocoa-touch,uipasteboard,generalpasteboard,Ios,Cocoa Touch,Uipasteboard,Generalpasteboard,物品在普通粘贴板中放置的时间是多少? 苹果的文件说: 通用粘贴板在设备重新启动和应用程序卸载时保持不变 我所拥有的: 两个(或更多)应用程序使用不同团队ID的配置文件签名 应用程序必须将其自定义url方案存储在一个公共位置 我要做的是: 使用[UIPasteboard generalPasteboard]存储这些方案,以便从所有这些应用程序访问 我需要的是: 这些应用程序需要访问此通用“存储” 确保粘贴板项目将持续很长一段时间(始终:-) 一般纸板是持久的。这很清楚,但不清楚此粘贴板

物品在普通粘贴板中放置的时间是多少?

苹果的文件说:

通用粘贴板在设备重新启动和应用程序卸载时保持不变

我所拥有的:

  • 两个(或更多)应用程序使用不同团队ID的配置文件签名
  • 应用程序必须将其自定义url方案存储在一个公共位置
我要做的是:

  • 使用[UIPasteboard generalPasteboard]存储这些方案,以便从所有这些应用程序访问
我需要的是:

  • 这些应用程序需要访问此通用“存储”
  • 确保粘贴板项目将持续很长一段时间(始终:-)
一般纸板是持久的。这很清楚,但不清楚此粘贴板中的项目寿命

基本上,问题是:我是否可以使用通用粘贴板作为应用程序间存储(长时间)

更新:

另外,我知道这不是一个好的(正确的)方法,但我需要所有这些应用程序相互了解方案,因此需要一个共享存储并随时可访问(我无法预期用户何时会打开所有这些应用程序)。我需要一个不涉及后端的解决方案

我是否可以将通用粘贴板用作应用程序间存储(长时间) (时间)


否。通用粘贴板旨在允许应用程序共享数据,以响应明确的用户操作。它并不意味着要成为一个公共数据库或存储库。事实上,在写入通用粘贴板时,不需要(也不应该)其他应用程序保存现有内容。您的URL方案将被用户启动的下一个副本覆盖。

如果让您的应用与网络对话不是问题,让他们在某个地方的服务器上注册他们的方案是一个合理的解决方案。存储持久性则完全取决于您。如果服务器不合理,并且方案没有那么大的变化,你可以让用户在第一次启动应用程序时驱动方案的交换。应用程序A切换到应用程序B以获取方案,然后切换回本地安装方案。这不是最理想的解决方案,但如果是一次性的,也不是那么麻烦。事实上,问题是所有应用程序(a、B等)都已注册了自定义(唯一)url方案,而应用程序a不知道应用程序B的方案。这一想法是所有应用程序都需要相互了解(没有后端)。那么关于你的答案,如果我不知道它的方案,我怎么能从应用程序A切换到应用程序B呢。。。说得好。如果没有一个共同的方案,应用程序将很难相互了解。如果用户知道A和B可以连接,也许他们可以提供一个“配对”UI,其中一个应用程序在通用粘贴板上放置一个私有类型(包含其方案),然后指示用户启动另一个应用程序。然后,其他应用程序在粘贴板上查找此类型,并向用户确认它了解了其他应用程序。如果连接应用程序的能力对用户来说并不明显,那么这将不起作用。。。但有人可能会说,这本身就是一个问题。一个通用的url方案如何解决这个问题?当我们为多个应用程序定义相同的自定义url方案时,iOS行为是未定义的(来自苹果的文档:“如果有多个第三方应用程序注册以处理相同的url方案,则目前没有确定哪个应用程序将获得该方案的过程。”)。因此,我无法选择打开哪个应用程序A、B或其他应用程序,iOS将为我做出此选择。抱歉,s/common/known/。您是对的,多次注册的方案的行为是未定义的,这是非常不幸的。