我一直在编写应用程序,使用 CloudKit 会让我的生活变得更轻松。然而,这个应用程序除了 iOS 应用程序之外还需要一个基于 Web 的应用程序。我想知道是否有任何方法可以将 CloudKit 与 Android 或基于 Web 的应用程序一起使用。
虽然这可能无法通过 Apple 提供的 API 直接实现,但另一种可能性是使用 OS X Server for CloudKit。这也可能/遵守 Apple 的 CloudKit 服务条款吗?
是的你可以。Apple 提供CloudKit JS,专为 Web 服务而设计。我对 Android 了解不多,但我很确定运行 JavaScript 不会是一项艰巨的挑战。
CloudKit WebServices对您来说也可能很有趣。
编辑 建议和讨论
给你一个诚实的建议:最好使用“自己的”东西。我目前在 AWS EC2 实例上使用自定义服务器,我非常高兴。
例如,您可以使用Node.js
并连接Mongo DB
NoSQL 数据库编写一个非常简单的服务器。CloudKit
其实不止这些。
这真的是一个简单的任务。我之前做过这个,并且有一些JavaScript
经验和几天的 Node 练习,这是绝对可行的;你会很快写出非常好的服务器。
最后,当与更多的客户打交道时,CloudKit实际上会更贵。如果你,为什么必须转移到不同的服务,你会遇到 CK 的麻烦,因为你无法访问私人存储的数据。
此外,请确保 CKs 概念符合您的需求。几个月前我也遇到过你的情况。当我阅读更多关于 CloudKit 并查看一些 WWDC 会议时,我越来越意识到它不是您可能期望的 BAAS。
一个例子:你没有访问控制:私人或公共,就是这样。有一个公共数据库,每个人都可以访问其中的每个资源。还有一个供任何用户使用的私有数据库,其他人无法访问。
如果您不想或不能自己做某事,您可以简单地将 BAASBOX 用于自托管 API 或任何商业BAAS
.
再次为游戏后期的任何人指出这一点:
其他人绝对无法访问私有(每个用户)数据库——即使您作为开发人员和运营商也无法访问最有可能加密的数据以移动到不同的(可能是自托管的)服务。
您需要进行更新,然后应用程序需要代表用户将数据移动到您的新服务 - “设备方式”。
这种过程通常是有问题的,因为您需要运行两个服务,直到所有活动用户都移动了他们的数据——这真的很难说;您的客户可能会闲置一段时间,如果他们的数据永远丢失,他们会感到不安。
好的——Cloudkit 可能会一直持续到……是的,直到那时。因此,进行这种被动的长期运动可能不会有那么大的问题。
使用 CloudKit JS 构建一个 Web 界面,让用户可以访问与在 iOS 或 macOS 上运行的 CloudKit 应用程序相同的公共和私有数据库。
您必须有一个现有的 CloudKit 应用程序并启用 Web 服务才能使用 CloudKit JS。
对于设置应用程序的容器并配置 CloudKit JS,请逐步执行以下操作:
创建应用的容器和架构。
如果您是 CloudKit 新手,请先阅读CloudKit 快速入门。您将使用 Xcode 创建应用程序的容器并使用 CloudKit Dashboard 查看容器。然后创建一个使用 CloudKit 存储应用数据的 iOS 或 Mac 应用。
在 CloudKit Dashboard 中,通过创建 API 令牌或服务器到服务器密钥来启用 Web 服务。
在您的网页中嵌入 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。
启用 JavaScript 严格模式。
要为整个脚本启用严格模式,请将“use strict”放在任何其他语句之前。
"use strict";
配置 CloudKit JS。
使用 CloudKit.configure 方法向 CloudKit JS 提供有关应用程序容器的信息。此外,指定是使用开发环境还是生产环境。有关示例,请参阅 CloudKit,有关可以设置的 CloudKit.CloudKitConfig 属性的详细信息,请参阅 CloudKit JS 数据类型。
现在,您可以在 JavaScript 代码中使用 CloudKit.getDefaultContainer 方法来获取应用程序容器 (CloudKit.Container) 及其数据库对象 (CloudKit.Database)。
参考线:
CloudKit 目录:CloudKit 简介(Cocoa 和 JavaScript)
参考页: