ios - UIPasteboard 没有提供价值
问题描述
一种对象,可帮助用户在您的应用程序中从一个地方到另一个地方共享数据,以及从您的应用程序到其他应用程序。
UIPasteboard
这是在文档开头写的声明。但是当我尝试在两个不同的应用程序中使用它访问由其他应用程序设置的数据时,我nil
每次都得到
DispatchQueue.global(qos: .background).async {
var i = 1
while(i > 0) {
let v = UIPasteboard.general.string
sleep(1)
print("Task : \(i)")
print("Value: \(v)")
i = i + 1
}
}
我在上面的代码中获取数据并在下面的代码中设置数据。
UIPasteboard.general.string = "Hello"
注意:我已经在这个应用程序中进行了本地测试,它正在设置数据
解决方案
你运行 iOS >=10 吗?关于在应用程序之间传递价值的隐私发生了变化。尝试阅读 UIPasteBoard api 文档:(https://developer.apple.com/documentation/uikit/uipasteboard)。
Tl:dr 您需要将两个应用程序都放在同一个应用程序组中(使用应用程序组在应用程序之间通信和持久化数据)
注意:iOS 应用程序是沙盒的。因此,iOS 10 中的更改只是强制执行了该功能。
已编辑:由于您不能使用应用程序组(不同的开发人员和/或产品),因此您必须通过不同的渠道发送数据。尝试通过公共服务器搜索 urlSchemes 或存储/获取(乏味)
推荐阅读
- c# - 为什么我的代码在相机视图中的一个游戏对象被销毁时一次生成两个游戏对象(而不是一个)?
- ios - 在 Xcode 11,beta 2 的 Interface Builder 中指定条形颜色时,iOS 13 的 UITabBarItem 图标颜色不正确
- sas - 使用正则表达式删除宏变量括号内的文本
- python - 在随机矩阵中找到最可能的区域
- forms - 在 TYPO3 扩展中创建表单并处理结果
- php - 将 JSON 中的数组作为二维数组的数组或字符串返回
- android - 模拟电池状态
- python - 如何使这个 Python filterwarnings 语句起作用?
- syntax - 混合大小写,但保持一致
- sql - 我无法使用从案例表达式创建的唯一变量列表创建表