33

我一直在编写应用程序,使用 CloudKit 会让我的生活变得更轻松。然而,这个应用程序除了 iOS 应用程序之外还需要一个基于 Web 的应用程序。我想知道是否有任何方法可以将 CloudKit 与 Android 或基于 Web 的应用程序一起使用。

虽然这可能无法通过 Apple 提供的 API 直接实现,但另一种可能性是使用 OS X Server for CloudKit。这也可能/遵守 Apple 的 CloudKit 服务条款吗?

4

3 回答 3

33

是的你可以。Apple 提供CloudKit JS,专为 Web 服务而设计。我对 Android 了解不多,但我很确定运行 JavaScript 不会是一项艰巨的挑战。

CloudKit WebServices对您来说也可能很有趣。

编辑 建议和讨论

给你一个诚实的建议:最好使用“自己的”东西。我目前在 AWS EC2 实例上使用自定义服务器,我非常高兴。

例如,您可以使用Node.js并连接Mongo DBNoSQL 数据库编写一个非常简单的服务器。CloudKit其实不止这些。

这真的是一个简单的任务。我之前做过这个,并且有一些JavaScript经验和几天的 Node 练习,这是绝对可行的;你会很快写出非常好的服务器。

最后,当与更多的客户打交道时,CloudKit实际上更贵。如果你,为什么必须转移到不同的服务,你会遇到 CK 的麻烦,因为你无法访问私人存储的数据。

此外,请确保 CKs 概念符合您的需求。几个月前我也遇到过你的情况。当我阅读更多关于 CloudKit 并查看一些 WWDC 会议时,我越来越意识到它不是您可能期望的 BAAS。

一个例子:你没有访问控制:私人或公共,就是这样。有一个公共数据库,每个人都可以访问其中的每个资源。还有一个供任何用户使用的私有数据库,其他人无法访问。

如果您不想或不能自己做某事,您可以简单地将 BAASBOX 用于自托管 API 或任何商业BAAS.


编辑二

再次为游戏后期的任何人指出这一点:

其他人绝对无法访问私有(每个用户)数据库——即使您作为开发人员和运营商也无法访问最有可能加密的数据以移动到不同的(可能是自托管的)服务。

您需要进行更新,然后应用程序需要代表用户将数据移动到您的新服务 - “设备方式”。

这种过程通常是有问题的,因为您需要运行两个服务,直到所有活动用户都移动了他们的数据——这真的很难说;您的客户可能会闲置一段时间,如果他们的数据永远丢失,他们会感到不安。

好的——Cloudkit 可能会一直持续到……是的,直到那时。因此,进行这种被动的长期运动可能不会有那么大的问题。

于 2015-07-14T13:28:12.710 回答
4

不幸的是,CloudKit 仅适用于 Apple 生态系统。但是,有一种称为ParseFireBase的类似技术可以让您做同样的事情,但可以是跨平台的。但是,它们的成本要高得多,而且不是客户端服务。

注意 - Parse 的托管服务将于 2017 年 1 月 28 日完全停用。

于 2014-07-03T03:43:05.343 回答
4

使用 CloudKit JS 构建一个 Web 界面,让用户可以访问与在 iOS 或 macOS 上运行的 CloudKit 应用程序相同的公共和私有数据库。

您必须有一个现有的 CloudKit 应用程序并启用 Web 服务才能使用 CloudKit JS。

对于设置应用程序的容器并配置 CloudKit JS,请逐步执行以下操作:

  1. 创建应用的容器和架构。

    如果您是 CloudKit 新手,请先阅读CloudKit 快速入门。您将使用 Xcode 创建应用程序的容器并使用 CloudKit Dashboard 查看容器。然后创建一个使用 CloudKit 存储应用数据的 iOS 或 Mac 应用。

  2. 在 CloudKit Dashboard 中,通过创建 API 令牌或服务器到服务器密钥来启用 Web 服务。

  3. 在您的网页中嵌入 CloudKit JS。

    使用脚本标签将 CloudKit JS 嵌入到您的网页中,并链接到 Apple 托管的 CloudKit JS 版本,网址为https://cdn.apple-cloudkit.com/ck/2/cloudkit.js.

    <script src="https://cdn.apple-cloudkit.com/ck/2/cloudkit.js">

CloudKit JS 版本号在 URL 中。例如,2 指定 CloudKit JS 2.0。

  1. 启用 JavaScript 严格模式。

    要为整个脚本启用严格模式,请将“use strict”放在任何其他语句之前。

    "use strict";

  2. 配置 CloudKit JS。

    使用 CloudKit.configure 方法向 CloudKit JS 提供有关应用程序容器的信息。此外,指定是使用开发环境还是生产环境。有关示例,请参阅 CloudKit,有关可以设置的 CloudKit.CloudKitConfig 属性的详细信息,请参阅 CloudKit JS 数据类型。

现在,您可以在 JavaScript 代码中使用 CloudKit.getDefaultContainer 方法来获取应用程序容器 (CloudKit.Container) 及其数据库对象 (CloudKit.Database)。

参考线:

云套件快速入门

使用 API 令牌访问 CloudKit

CloudKit Web 服务参考

使用服务器到服务器密钥访问 CloudKit

CloudKit 目录:CloudKit 简介(Cocoa 和 JavaScript)

iCloud 设计指南

参考页:

CloudKit JS

于 2019-11-26T12:34:07.420 回答