CloudKit与未安装应用程序的用户共享

时间:2018-06-02 14:10:50

标签: cloudkit

我需要与尚未安装我的应用的联系人共享记录。我知道有一种方法可以将分享邀请的收件人引导到应用程序商店,在那里他们可以下载我的应用程序......由于某些原因,我无法弄清楚如何做到这一点。目前,使用我的应用程序,如果收件人没有我的应用程序,则会指示他们打开iCloud。你需要为我的应用程序开启icloud"在你打开它之前#34;。由于他们没有应用程序,这将使他们陷入混乱和绝望的状态。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

创建CKShare时,您可以将默认 publicPermission 设置为 .readWrite ,以便人们只需要链接到您的共享,以便开始使用共享记录。这是一个例子:

//:: Step 1 :: Create the rootRecord and share
let rootRecord = CKRecord(recordType: "...", recordID: CKRecordID(recordName: "...", zoneID: "..."))

let share = CKShare(rootRecord: rootRecord)

share[CKShareTitleKey] = "..." as CKRecordValue
share[CKShareTypeKey] = "com.example.YourApp" as CKRecordValue
share.publicPermission = .readWrite //<-- This is the important part

//:: Step 2:: Save the share to CloudKit
let operation = CKModifyRecordsOperation(recordsToSave: [rootRecord, share], recordIDsToDelete: nil)
operation.savePolicy = .changedKeys
operation.modifyRecordsCompletionBlock = { records, recordIDs, error in
    if let error = error{
      print(error)
    }else{
      if let url = share.url{
        //:: Step 3 :: Grab the share URL
        print(url.absoluteString) //<-- Save this URL somewhere that you can send to people
      }
    }
} 

使用此publicPermission级别,您不需要CKUserIdentity来添加参与者。您可以在以后开始使用应用时添加它们。

有关详细信息,请参阅publicPermission docs here

祝你好运!