提供 iOS 用的 DataChannel 的实现。
本存储库的 示例、示例-swift 目录是使用 WKWebView(HTML)和原生代码(Objective-c)之间 DataChannel 进行通信的简单示例项目。
要构建和运行示例,请先执行 pod install
。
cd Example
pod install
open Example.xcworkspace
或者
cd Example-swift
pod install
open Example-swift.xcworkspace
abstract_target 'defaults' do
pod 'CBBDataChannel', '2.0.5'
end
指定要使用的 CBBDataBus 实例,然后生成 CBBDataChannel。
CBBDataChannel* dataChannel = [[CBBDataChannel alloc] initWithDataBus:dataBus];
CBBDataChannel#addHandler
添加接收数据的接收口处理程序callback
,所以需要调用它并返回响应。 [dataChannel addHandler:^(id _Nullable packet, CBBDataChannelResponseCallback _Nullable callback) {
if (callback) {
// REQUEST (双方向データ) を受信時の処理
// 最後に処理結果を応答する必要がある
callback(@"response-data");
} else {
// PUSH (単方向データ) を受信時の処理
}
}];
添加的处理程序可以通过
CBBDataChannel#removeHandler
或CBBDataChannel#removeAllHandlers
进行删除。
可以通过 CBBDataChannel#sendPush
发送 PUSH(单方向数据)。
[dataChannel sendPush:@["push-data"]];
可以通过 CBBDataChannel#sendRequest
发送 REQUEST(双向数据)。
[dataChannel sendRequest:@["request-data"] callback:^(NSError * _Nullable error, id _Nullable packet) {
// 応答を受信時の処理
}];
可以通过 CBBDataChannel#destroy
进行销毁。
[dataChannel destroy];
即使销毁了 DataChannel,也不会执行下位层(DataBus)的销毁。