6

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

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

苹果的文档说:

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

这意味着粘贴板可以是“全局和公共的”或“命名和私有的”。

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

感谢您的任何见解!

4

3 回答 3

10

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

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

[pasteboard setPersistent:YES];

//save the unique identifier string that we created earlier
[pasteboard setString:@"your message"];
于 2012-09-10T23:48:41.827 回答
1

支持。但是请记住,如果设置它的两个应用程序都被删除,命名的粘贴板将会消失,因此不要使用它来存储您没有备份的任何内容。

于 2012-09-10T23:50:03.850 回答
0

如果您使用命名粘贴板,则可以将数据从您的应用程序传输到具有相同团队 ID 的其他应用程序。我还没有测试过,但我不认为你可以对不同供应商的应用程序做同样的事情!

苹果文档说:

您可以使用类方法 init(name:create:) 和 withUniqueName() 创建命名粘贴板,以便在您的应用程序内以及从您的应用程序到具有相同团队 ID 的其他应用程序共享数据。

于 2018-08-30T12:40:43.773 回答