SZWebViewBridge
SZWebViewBridge 是一个轻量级的纯 Swift 库,用于在 WKWebView 和 Web 客户端之间发送消息的桥梁。它基于消息处理程序。
要求
- iOS 10.0+
- Swift 5.0+
安装
SZWebViewBridge 可通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile 中
pod 'SZWebViewBridge'
用法
- 使用
WKWebView
和UIViewController
初始化SZWebViewBridge
。(UIViewController
将分配给处理器,并将在将来使用。例如:推送或呈现到另一个UIViewController
)
let bridge = SZWebViewBridge(webView: webView, viewController: self)
webViewBridge = bridge // make sure bridge will not be deinit.
- 添加一些预定义的处理程序。
var handlers: SZWebViewBridgeBaseHandlerObject {
return [
"setTitle": TitleHandler.self,
"alert": AlertHandler.self,
"testError": TestReceiveErrorHandler.self,
"testSuccess": TestReceiveSuccessHandler.self,
"testPush": TestPushHandler.self,
]
}
webViewBridge.addHandlers(handlers: handlers)
- 完成!您可以使用
addHandlers
和removeHandlers
函数添加或删除处理器。更多详细用法请参阅示例项目。以下是TitleHandler
的示例代码。
import UIKit
import SZWebViewBridge
class TitleHandler: SZWebViewBridgeBaseHandler {
override func invoke() throws {
guard let params = params else { return }
if let title = params["title"] as? String {
if let viewController = viewController {
viewController.title = title
}
}
}
}
示例
要运行示例项目,请先克隆仓库,并在 Example 目录下运行 pod install
。
作者
eroscai,[email protected]
许可证
SZWebViewBridge 在 MIT 许可证下可用。更多信息请参阅 LICENSE 文件。