我一直在编写应用程序,使用CloudKit会让我的生活变得更轻松。但是,此应用程序需要iOS应用程序旁边的基于Web的应用程序。我想知道是否有任何方法可以将CloudKit与Android或基于网络的应用程序结合使用。
虽然使用Apple提供的API可能无法直接实现这一点,但另一种可能性是将OS X Server用于CloudKit。是否可以/遵守Apple的CloudKit服务条款?
谢谢!
答案 0 :(得分:19)
是的,你可以。 Apple提供专为Web服务设计的CloudKit JS。我对Android知之甚少,但我很确定运行JavaScript并不是一个艰难的挑战。
CloudKit WebServices对你来说也很有趣。
编辑 建议和讨论
给你一个诚实的建议:更好地使用“拥有”的东西。我目前在AWS EC2实例上使用自定义服务器并且非常高兴。
例如,您可以使用Node.js
编写一个非常简单的服务器并连接Mongo DB
NoSQL数据库。 CloudKit
实际上不超过这个。
这真是一项简单的任务。我以前做过这个并且有一些JavaScript
经验和几天的节点练习它绝对可行;你会很快写出非常好的服务器。
最后,在与更多客户打交道时,实际上CloudKit 将更昂贵。如果您,为什么,必须转移到其他服务,您将遇到CK问题,因为您无法访问私下存储的数据。
另外,请确保CKs概念符合您的需求。几个月前我就是你的情况。当我阅读有关CloudKit的更多内容并观看了一些WWDC会话时,我越来越意识到它不是您所期望的BAAS。
一个例子:你没有访问控制:私有或公共,就是这样。有一个公共数据库,每个人都可以访问每个资源。而且任何用户都可以访问私人数据库。其他人无法访问。
如果您不想或不能自己做某事,您可以简单地将BAASBOX用于自托管API或任何广告BAAS
。
<小时/> 编辑II
为游戏后期的任何人再次指出:
私人(每用户)数据库对于其他人来说绝对无法访问 - 即使您作为开发人员和运营商也无法访问假设加密的数据以移动到其他人(可能是自己的)托管)服务。
您需要进行更新,然后应用需要代表用户将数据移至新服务 - “device-ly”。
这类流程通常是有问题的,因为您需要运行两个服务,直到所有活动用户都移动了他们的数据 - 这是真的很难说;你的客户可能会闲置一段时间,如果他们的数据永远丢失,他们会感到沮丧。
好的 - Cloudkit可能会一直持续到......是的,直到然后。因此,做那种被动的长期运动可能不会有问题。
答案 1 :(得分:5)
不幸的是,CloudKit仅适用于Apple生态系统。但是,有一些名为Parse和FireBase的类似技术允许您执行相同的操作,但可以跨平台。但是,它们的成本要高得多,而且不是客户端服务。
注意 - Parse的托管服务将于2017年1月28日完全退休。
答案 2 :(得分:1)
使用CloudKit JS构建Web界面,使用户可以访问与在iOS或macOS上运行的CloudKit应用相同的公共和私有数据库。
您必须具有现有的CloudKit应用程序并启用Web服务才能使用 CloudKit JS。
要设置您的应用的容器并配置CloudKit JS,请按以下步骤操作:
创建应用的容器和架构。
如果您不熟悉CloudKit,请先阅读CloudKit Quick Start。您将使用Xcode创建应用程序的容器,并使用CloudKit仪表板查看容器。然后创建一个使用CloudKit存储您的数据的iOS或Mac应用。
在CloudKit仪表板中,通过创建API令牌或服务器到服务器密钥来启用Web服务。
在您的网页中嵌入CloudKit JS。
使用脚本标签在您的网页中嵌入CloudKit JS,并在https://cdn.apple-cloudkit.com/ck/2/cloudkit.js
链接到Apple的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)。
参考线路:
Accessing CloudKit Using an API Token
CloudKit Web Services Reference
Accessing CloudKit Using a Server-to-Server Key
CloudKit Catalog: An Introduction to CloudKit (Cocoa and JavaScript)
参考页: