WebViewJavascriptBridge 는 JS 와 OC 의 상호 호출 을 실현 합 니 다.
준비 작업
{ WebViewJavascriptBridge *_bridge; } @property(nonatomic, strong)UIWebView *webView; 는 WebView JavascriptBridge 코드 를 다음 과 같이 초기 화 합 니 다 [WebViewJavascriptBridge enableLogging];// _bridge = [WebViewJavascriptBridge bridgeForWebView:self.webView webViewDelegate:self handler:^(id data, WVJBResponseCallback responseCallback) { }];. 이로써 JS 와 OC 가 서로 호출 하 는 환경 을 설정 하고 그 다음 에 어떻게 호출 하 는 지 설정 합 니 다.JS 호출 OC
[_bridge registerHandler:@"backAction" handler:^(id data, WVJBResponseCallback responseCallback) { //ToDo } html 에 단추 가 있 는 id 는 backicon 입 니 다. 단 추 를 눌 렀 을 때 OC 코드 $('#backicon').click(function() { setupWebViewJavascriptBridge(function(bridge) { bridge. callHandler ('backAction', function response Callback (response Data) {}) 를 호출 합 니 다.}}); $기 호 는 jQuery 를 나타 내 는데 여 기 는 약자 형식 입 니 다.OC 호출 JS
bridge.registerHandler('testJavascriptHandler', function(data, responseCallback) { log ('ObjC called testJavascriptHandler with', data) var response Data = {'Javascript Says':' Right back atcha! '} log (' JS responsing with ', responseData) responseCallback (responseData)} testJavascriptHandler JS , OC [ bridge callHandler: @' testJavascriptHandler 'data: @ {@ @"foo":@"before ready" }];` 출력 로 그 를 쉽게 보기 위해 로그 방법 을 사 용 했 습 니 다. 이 방법 은 이렇게 정의 되 었 습 니 다
var uniqueId = 1 function log(message, data) { var log = document.getElementById('log') var el = document.createElement('div') el.className = 'logLine' el.innerHTML = uniqueId++ + '. ' + message + ':
' + JSON.stringify(data) if (log.children.length) { log.insertBefore(el, log.children[0]) } else { log.appendChild(el) } }WebViewJavascriptBridge 에 대해 더 알 고 싶 으 신 분 들 은 아래 연결 을 클릭 하여 github 에 가서 WebViewJavascriptBridge 에 대해 자세히 알 아 보 세 요.