0%

Jsbridge

jsBridge

原理

IOS 有两个拦截方式一个是 UI 另一种是 WKWebview

拦截 URL 实现通信、

1
2
3
4
5
6
window.WKwebviewBridge = {
registerHandle:handleRegister,
callHandler:callHandler
}
const sendMessageQueue = []

jsCallBridge 实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
bridge.callHandler('Name',data,(data)=>{
console.log('js Receive data')
})
function callHandler(handlerName,data,responseCallBack){
if(arguments.length ===2 && typeof data === 'function'){
responseCallBack = data
data = null
}
doSend({handlerName,data},responseCallBack)
}
function doSend(message,responseCallback){
if(responseCallBack){
const callBackId = '__bridge'+new Date()
responseCallBack[]
}
}