【发布时间】:2019-07-19 00:10:41
【问题描述】:
func application(_ application: UIApplication, userDidAcceptCloudKitShareWith cloudKitShareMetadata: CKShare.Metadata) {...}
在共享 cloudkit 记录的链接上单击“确定”后不会调用。应用会打开,但这个函数(应该被调用)没有。
- CKSharingSupported:YES 列在我的 info.plist 中
- 我已将记录放入名为“sharedZone”的区域中
- SharedZone 显示在我的私人数据库中的区域列表中。
- 共享记录显示我被“邀请”了
- 尝试删除应用和云数据并重新安装,没有变化
func application(_ application: UIApplication, userDidAcceptCloudKitShareWith cloudKitShareMetadata: CKShare.Metadata) {
print("you accepted something")
let acceptShareOperation: CKAcceptSharesOperation = CKAcceptSharesOperation(shareMetadatas:[cloudKitShareMetadata])
//acceptShareOperation.qualityOfService = .userInteractive
acceptShareOperation.perShareCompletionBlock = {meta, share,
error in
print("share was accepted")
}
acceptShareOperation.acceptSharesCompletionBlock = {
error in
/// Send your user to where they need to go in your app
print("share accepted completion block!")
}
CKContainer(identifier: cloudKitShareMetadata.containerIdentifier).add(acceptShareOperation)
}
预期结果:至少看到控制台打印出“你接受了某些东西”这一行。
更新:恢复到 IOS11.3 并不能正常工作。
更新:我下载了一个使用 cloudkit 构建的教程,并且(经过一番琢磨之后,让他们的代码开始工作。然后我删除了他们的代码并将我的代码放入其中,现在该功能可以正常工作,所以我认为问题可能与其中任何一个有关:
- XCODE 11 测试版,或
- 苹果新增coredata + cloudkit同步功能。
【问题讨论】:
-
"关于共享 cloudkit 记录的链接" 我们在哪里可以找到链接?
-
当“共享”用户界面出现时(内置苹果),它会在底部显示方法列表:邮件、Whatsapp、消息、复制链接。如果您选择“复制链接”,窗口将变为电子邮件,允许您添加联系人。在右上角,它会说“复制链接”。点击它会将链接放在剪贴板上。然后我打开“消息”并粘贴链接。这是一个类似于“icloud.com/share/2949485r8959494#shareTitle”的 icloud 链接,然后我将其发送到我的其他帐户,然后在我的其他设备上单击该链接。