我一直在编写一个应用程序,使用CloudKit可以使我的生活变得更加容易。但是,这个应用程序需要与iOS应用程序一起使用的基于Web的应用程序。我想知道是否有任何方法可以在Android或基于Web的应用程序中使用CloudKit。
虽然这可能不是直接通过由Apple提供的API实现的,但另一个可能性是使用OS X Server来处理CloudKit。这也可能与CloudKit的苹果服务条款相符吗?
是的,您可以。苹果提供了专门为Web服务设计的CloudKit JS。我不太了解Android,但我相信运行JavaScript不会是一项难事。
此外,CloudKit WebServices对您可能也很有用。
编辑 建议和讨论
给你一个诚实的建议:最好使用自己的服务。我目前在AWS EC2实例上使用自定义服务器,非常满意。
例如,您可以使用Node.js
编写一个非常简单的服务器,并连接Mongo DB
NoSQL数据库。实际上,CloudKit
就是这么简单。
这其实是一个简单的任务。以前我做过这个,并且有一些JavaScript
经验和几天的Node练习,完全可行;您将非常快速地编写出优秀的服务器。
最后,当处理更多客户时,CloudKit实际上会更加昂贵。如果您为任何原因必须转移到另一个服务,则将遇到问题,因为您无法访问私有存储的数据。
此外,请确保CK的概念符合您的需求。几个月前我曾处于您的情况。随着我阅读有关CloudKit的更多信息并查看一些WWDC会话,我越来越意识到它不是您可能期望的BAAS。
举个例子:您没有访问控制:公共或私有,就这样。有一个公共数据库,每个人都可以访问其中的每个资源。还有一个私人数据库,每个用户都可以访问,但其他人无法访问。
如果你不想或不能自己完成某事,你可以简单地使用BAASBOX作为自托管API或任何商业BAAS。
再次指出,对于游戏中的任何人,私有(每个用户)数据库绝对无法访问 - 即使您作为开发者和运营商也无法访问,最可能是加密的数据以转移到不同的(可能是自托管的)服务。
您需要进行更新,然后应用程序需要代表用户将数据移动到新服务中 - “设备式”。这些类型的过程通常存在问题,因为您需要运行两个服务,直到所有活动用户移动其数据 - 这很难确定;如果他们的数据永远消失在虚空中,您的客户可能会闲置一段时间并感到沮丧。
好了 - Cloudkit可能会继续...是的,直到那时。因此,进行这种被动长期移动可能不会那么麻烦。
按以下步骤设置应用程序容器并配置 CloudKit JS:您必须拥有现有的 CloudKit 应用程序并启用网络服务才能使用 CloudKit JS。
创建您的应用程序容器和模式。
如果您是初次接触 CloudKit,请先阅读 CloudKit 快速入门。您将使用 Xcode 创建应用程序容器,并使用 CloudKit Dashboard 查看容器。然后创建一个使用 CloudKit 存储应用程序数据的 iOS 或 Mac 应用程序。
在 CloudKit Dashboard 中创建 API 令牌或服务器到服务器密钥以启用网络服务。
将 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 JS 数据类型以了解可以设置的 CloudKit.CloudKitConfig 属性的详细信息。
CloudKit 目录:关于 CloudKit (Cocoa 和 JavaScript) 的介绍
参考页面: