CloudInAppMessaging 0.1.0

CloudInAppMessaging 0.1.0

Andrew Podkovyrin维护。



CloudInAppMessaging

CI Status Version Carthage Compatible Accio supported License Platform

CloudInAppMessaging 是一个由 CloudKit 驱动的 SDK,允许您通过上下文消息与活跃的应用程序用户互动。

它被创建成一个替代Firebase In-App Messaging 的开源替代方案。

CloudInAppMessaging Alert

详细信息

功能

  • 通过独立的 Admin App 创建、配置并预览警报活动。
  • 通过按钮动作打开任何 URL(如 HTTP 或深链接)。
  • 支持多语言本地化。
  • 定向(按国家、语言、应用程序和操作系统版本的最小/最大版本)。
  • 具有起始日期和/或结束日期的调度。
  • 在任何自定义事件或系统事件(如“前台”或“应用程序启动”)上触发显示警报活动。
  • 使用您自己的 UI 自定义警报活动的展示。
  • 您的用户不需要拥有iCloud账户。
  • 考虑到隐私构建。
  • 随意对其进行分叉和修改!

实现细节

CloudInAppMessaging使用公共CloudKit数据库,因此即使没有iCloud账户,您的应用的任何用户都可以访问。但这有一个重要的限制,即没有推送通知功能。因为目前,CloudKit仅支持共享数据库和私有数据库的推送通知,所以不能用于发送应用内消息的目的。

设置

将CloudInAppMessaging SDK添加到您的项目中

  1. 要添加CloudInAppMessaging,请参考安装部分。
  2. 在Xcode应用程序目标的设置中的“签名与能力”选项卡中添加iCloud功能。
  3. 在iCloud部分下启用CloudKit服务并添加一个新的CloudKit容器。输入唯一的标识符(通常没有“iCloud”前缀),例如com.example.myapp。这也可以通过Apple开发者门户完成。
  4. 让Xcode修复签名问题。
  5. 在您的应用的application:didFinishLaunchingWithOptions:方法中配置CLMCloudInAppMessaging共享实例。

Swift

CLMCloudInAppMessaging.setup(with: "iCloud.com.example.myapp")

Objective-C

[CLMCloudInAppMessaging setupWithCloudKitContainerIdentifier:@"iCloud.com.example.myapp"];

设置CloudInAppMessaging管理员应用

为了创建和修改警报活动,您需要使用CloudKit仪表板或所谓的管理员应用。后者可以更方便地进行操作,而不是处理数据库数据。

  1. 要运行管理员应用,首先克隆仓库,然后从示例目录中运行pod install
  2. CloudMessagingAdminConfiguration.swift中设置目标的应用程序包标识符。
  3. 类似于SDK设置,为管理员应用设置相同的CloudKit容器标识符("iCloud.com.example.myapp")。
  4. 在您的设备或模拟器上运行管理员应用(注意,只有从已登录iCloud账户的设备才能写入数据库)。
  5. 由于CloudKit架构通常是通过创建新记录来定义的,因此先运行管理员应用,然后从调试菜单创建测试警报活动。
  6. 创建成功后,应用将尝试获取当前警报活动并最终出错:“字段'recordName'未标记为可查询”。遗憾的是,不允许通过程序创建索引,这需要通过CloudKit仪表板完成。
  • 选择您的CloudKit容器并转到“架构”设置。
  • 从“记录类型”的下拉菜单中选择“索引”。
  • 为警报活动记录添加一个新的索引,并将其“QUERYABLE”类型设置为“recordName”字段,然后按“保存更改”。
  1. 创建索引后,下拉列表以查看新创建的警报活动。
  2. 发布您的应用程序之前,别忘了将开发模式在 CloudKit Dashboard 中部署到生产环境。

安装

CocoaPods

CloudInAppMessaging 通过 CocoaPods 提供。要安装它,请简单地在您的 Podfile 中添加以下行:

pod 'CloudInAppMessaging'

Carthage

Carthage 是一个去中心化的依赖管理器,它可以自动将框架添加到您的 Cocoa 程序中。要使用 Carthage 将 CloudInAppMessaging 集成到您的 Xcode 项目中,请在您的 Cartfile 中指定它。

github "podkovyrin/CloudInAppMessaging"

Swift 包管理器

Swift 包管理器 是一个用于自动化 Swift 代码分配的工具,并集成在了 swift 编译器中。

一旦您设置了 Swift 包,将 CloudInAppMessaging 作为依赖项添加到 Package.swiftdependencies 值同样简单。

dependencies: [
    .package(url: "https://github.com/podkovyrin/CloudInAppMessaging.git", from: "0.1.0")
]

Accio

  1. 将以下内容添加到您的 Package.swift 中:
.package(url: "https://github.com/podkovyrin/CloudInAppMessaging.git", .upToNextMajor(from: "0.1.0")),
  1. 接下来,像这样将 CloudInAppMessaging 添加到您的 App 目标的依赖项:
.target(name: "App", dependencies: ["CloudInAppMessaging"]),
  1. 然后运行 accio update

需求

CloudInAppMessaging 需要 iOS 10 或更高版本。

CloudInAppMessaging 管理应用需要 iOS 11 或更高版本。

常见问题解答

为何不使用 Firebase In-App Messaging?

  • 它非常庞大。Firebase In-App Messaging SDK 包括 14(!) 个依赖,其中一些是专有的(封闭源代码)。
$ pod install
Installing Firebase (6.11.0)
Installing FirebaseAnalytics (6.1.3) # 📦 closed-source
Installing FirebaseAnalyticsInterop (1.4.0) # 📦 closed-source
Installing FirebaseCore (6.3.2)
Installing FirebaseCoreDiagnostics (1.1.1)
Installing FirebaseCoreDiagnosticsInterop (1.0.0)
Installing FirebaseInAppMessaging (0.15.5)
Installing FirebaseInAppMessagingDisplay (0.15.5)
Installing FirebaseInstanceID (4.2.6)
Installing GoogleAppMeasurement (6.1.3) # 📦 closed-source
Installing GoogleDataTransport (3.0.1)
Installing GoogleDataTransportCCTSupport (1.2.1)
Installing GoogleUtilities (6.3.1)
Installing nanopb (0.3.9011)
  • 尽管它可以被覆盖以使用 UIAlertController 或任何你自定义的控制器,但 Firebase In-App Messaging 使用其自己的 UI 进行警报,这有点“安卓风”。
  • 这是另一个你必须信任你数据和用户数据的三方服务。

至于其余的,它们与 Firebase Analytics 有深度集成,如果你已经在使用它,这是很好的。

作者

安德烈·波多科夫林,[email protected]

许可

CloudInAppMessaging 在 MIT 许可下提供。有关更多信息,请参阅 LICENSE 文件。