在应用程序之间命名为UIPasteboard?

Mat*_*hew 6 uipasteboard ios

是否可以使用命名的UIPasteboard(即不是全局的)在两个应用程序之间传输数据?

  • 应用程序彼此完全独立,因此具有来自不同供应商的不同捆绑ID
  • 我想使用命名的粘贴板,因此不会覆盖用户在全局粘贴板中自己的内容

Apple的文档说:

粘贴板可以是公共的或私人的.公共粘贴板称为系统粘贴板; 私有粘贴板由应用程序创建,因此称为应用程序粘贴板.

这意味着粘贴板可以是"全局和公共"或"命名和私有".

我创建了两个具有不同捆绑ID的应用程序,并且似乎能够使用私有名称的粘贴板将内容从一个应用程序传递到另一个应用程序.但这只是iOS模拟器的一个功能,还是真正支持但没有很好记录的东西?

感谢您的任何见解!

roo*_*117 10

您可以为粘贴板值设置自定义字符串,并在整个应用中使用该字符串,以便您的应用必须使用您的唯一字符串访问该值:

UIPasteboard *pasteboard = [UIPasteboard pasteboardWithName:@"youruniquestring" create:YES];

[pasteboard setPersistent:YES];

//save the unique identifier string that we created earlier
[pasteboard setString:@"your message"];
Run Code Online (Sandbox Code Playgroud)

  • 这与ios7有所不同.https://developer.apple.com/library/ios/releasenotes/General/RN-iOSSDK-7.0/"pasteboardWithName现在唯一的给定名称,只允许同一应用程序组中的那些应用程序访问粘贴板.如果开发人员尝试要创建一个名称已经存在并且它们不属于同一个应用程序套件的粘贴板,它们将获得自己独特的私有粘贴板" (12认同)