[英]Can I use CloudKit on Android or web-based app?
我一直在编写一个应用程序,使用 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 仅适用于 Apple 生态系统。 但是,有一些类似的称为Parse和FireBase 的技术可以让你做同样的事情,但可以跨平台。 但是,它们的成本要高得多,而且不是客户端服务。
注意 - Parse 的托管服务将于 2017 年 1 月 28 日完全停用。
使用 CloudKit JS 构建一个 Web 界面,让用户可以访问与在 iOS 或 macOS 上运行的 CloudKit 应用程序相同的公共和私有数据库。
您必须拥有现有的 CloudKit 应用程序并启用 Web 服务才能使用 CloudKit JS。
要设置应用程序的容器并配置 CloudKit JS,请按以下步骤操作:
创建应用的容器和架构。
如果您不熟悉 CloudKit, 请先阅读CloudKit 快速入门。 您将使用 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)。
参考线:
CloudKit 目录:CloudKit 简介(Cocoa 和 JavaScript)
参考页面:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.