SwiftyMessenger CI CocoaPods Compatible Carthage Compatible Platform License

    _________ ___          ___  _   _____  _________ ___    ___
   /        / \  \        /  / |_| ( ___ \ \__   __/ \  \  /  /
  /   _____/   \  \  /\  /  /  | | | (  \/    ) (     \  \/  /
  \_____  \     \  \/  \/  /   | | | (_       | |      \    /
  /        \     \  ____  /    | | |  _)      | |       )  (
 /_______ /       \/    \/     |_| | (        | |       |  |
        \/                         | )        )_(       |__|
                                   |/
      _____        ______    ________  ________  ______   __      __     _____      ______  _________
     /     \      (  ____\  /       / /       / (  ____\ |  \    |  |   /     \    (  ____\ \______  \
    /       \     | (      /   ____/ /   ____/  | (      |  |\   |  |  /   ____\   | (       |        \
   /  /\ /\  \    | (__    \_____ \  \_____ \   | (__    |  | \  |  | /   /__/  |  | (__     |    |____\
  /  /  Y  \  \   |  __)   /       \ /       \  |  __)   |  |  \ |  | \______   /  |  __)    |     \\
 /  /       \  \  | (     /_______/ /_______/   | (      |  |   \|  |  _____/  /   | (       |    | \\
 |_/         |__| | (___/\      \/        \/    | (___/\ |__|    |__| |_______/    | (___/\  |____| |_|
                  (______/                      (______/                           (______/

SwiftyMessenger

用于在 iOS 应用和扩展之间传递消息的 Swift 工具包。 它在容器应用和 iOS 扩展之间创建桥梁。 SwiftyMessenger 将消息归档到写入应用程序共享 App Group 的文件中。 SwiftyMessenger 类似于应用程序和扩展之间没有进程间通信的进程间通信。

它还支持 CFNotificationCenter Darwin 通知,以支持实时更改通知。 当消息传递时,感兴趣方可以监听并在双方(几乎是即时)收到这些更改的通知。

Sample App

要求

SwiftyMessenger 版本 最低 iOS 目标版本 最低 watchOS 目标版本 Swift 版本
0.4.0 iOS 10 watchOS 3.0 Swift 5.x
0.2 iOS 9 watchOS 2.0 Swift 4.2
0.1 iOS 9 watchOS 2.0 Swift 4.1

注意

SwiftyMessenger 只能与 App Group 标识符和 Entitlements 配合使用。

CocoaPods

CocoaPods 是 Cocoa 项目的依赖项管理器。 您可以使用以下命令安装它

$ gem install cocoapods

要使用 CocoaPods 将 SwiftyMessenger 集成到您的 Xcode 项目中,请在您的 Podfile 中指定它

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!

target '<Your Target Name>' do
	pod 'SwiftyMessenger', '~>0.4.0'
end

Carthage

Carthage 是一个去中心化的依赖项管理器,它可以构建您的依赖项并为您提供二进制框架。

您可以使用 Homebrew 使用以下命令安装 Carthage

brew update
brew install carthage

要使用 Carthage 将 SwiftyMessenger 集成到您的 Xcode 项目中,请在您的 Cartfile 中指定它

github "abdullahselek/SwiftyMessenger" ~> 0.4.0

Swift Package Manager

修改您的 Package.swift 文件以包含以下依赖项

.package(url: "https://github.com/abdullahselek/SwiftyMessenger.git", from: "0.4.0")

XCFramework

XCFrameworks 需要 Xcode 11 或更高版本,并且集成方式与 .framework 格式的集成非常相似。 请使用脚本 scripts/build-framework.sh 生成二进制 SwiftyMessenger.xcframework 存档,您可以在 Xcode 中将其用作依赖项。

SwiftyMessenger.xcframework 是一个 Release (优化) 二进制文件,可提供最佳的 Swift 代码性能。

用法

初始化

messenger = Messenger(withApplicationGroupIdentifier: "group.com.abdullahselek.swiftymessenger", directory: "messenger")

传递消息

messenger.passMessage(message: ["selectedCell": title], identifier: "selection")

读取消息

if let message = messenger.messageForIdentifier(identifier: "button") as? [String: Any] {
	let buttonTitle = message["buttonTitle"] as? String
}

使用标识符监听消息更改

messenger.listenForMessage(withIdentifier: "button") { message in
    guard let message = message as? [String: Any] else {
        return
    }
    let buttonTitle = message["buttonTitle"] as? String
}

支持 WatchConnectivity

SwiftyMessenger 支持 Apple 在 watchOS 扩展上提供的 WatchConnectivity

如果您想在应用程序中使用 WatchConnectivity 支持,这里有两个小提示需要了解

传输类型

您可以在 TransitingType 下找到 5 种可用类型。

许可证

SwiftyMessenger 在 MIT 许可证下发布。 有关详细信息,请参见 LICENSE。

致谢

受 MutualMobile 的启发。 在新的编程语言 Swift 中改进和完全编码。