ALBridge
ALBridge 是为 iOS 上 WKWebView 提供的一个轻量级 JavaScript 桥接器。
AL 是“安澜”的简称,是中国成都市都江堰一座古桥的名字。
函数
- JSAction
JSAction 是一个可以被 JavaScript 调用的代码块。在使用前需要先在 ALBridge 中进行注册,通过异步回调函数返回 JSAction 的结果。 - 分发原生事件
原生事件可以被分发给 window 对象,在 JavaScript 代码中可以通过window.addEventListener(event, handler)
进行监听。 - 白名单
只有白名单上的网站才能使用 ALBridge。
如何安装
pod 'ALBridge'
如何使用
注册 ALBridge
let bridge = ALBridge.init()
webView.registerJSBridge(bridge)
注册JSAction
JSAction 是一个可以被 JavaScript 调用的代码块。在使用前需要先在 ALBridge 中进行注册,通过异步回调函数返回 JSAction 的结果。
您可以直接在ALBridge.handler
中添加JSAction和操作名称。
bridge.handlers["action_name"] = { (message, param, completionHandler, progressChangedHandler) in
/* implement */
}
如果没有返回结果,可以忽略JSAction的回调处理程序。
触发本地事件
ALBridge支持向JavaScript的窗口对象派发本地事件。
webView.dispatchEvent(name: "event_name", content: params)
白名单
ALBridge将在派发本地事件或执行JSActivon之前检查wkwebview的当前url是否位于白名单中。
白名单验证仅验证url的方案、主机和端口号。
如果ALBridge的白名单为空,则表示无需验证。
-
将url添加到白名单
bridge.addWhitelist(url)
-
从白名单中删除url
bridge.removeWhitelist(url)
-
清理白名单
bridge.clearWhitelist()