美文网首页
Objective-C与JS交互 —— WebViewJavas

Objective-C与JS交互 —— WebViewJavas

作者: MaxWellPro | 来源:发表于2017-07-20 17:51 被阅读21次

WebViewJavascriptBridge同时支持UIWeView和WKWebView,无论是JS调用OC还是OC调用JS,都可以正常传值和返回值;而且在页面加载时只要JS代码被运行就可以进行交互,是现在处理交互的主流做法。

  • 1.初始化webViewBridge
    _webViewBridge = [WKWebViewJavascriptBridge bridgeForWebView:self.webView];
    [_webViewBridge setWebViewDelegate:self];
  • 2.注册Native方法
#pragma mark – Private Methods

- (void)registLocationFunction {
    [_webViewBridge registerHandler:@"getLocation" handler:^(id data, WVJBResponseCallback responseCallback) {
        // 获取位置信息
        ···
        
        NSString *locationStr = @"广东省深圳市南山区高新南一道TCL大厦";
        // 将结果返回给js
        responseCallback(locationStr);
    }];
}
  • 3.JS调用OC
 function locationClick() {
                WebViewJavascriptBridge.callHandler('getLocation',null,function(response) {
                    alert(response);
                    document.getElementById("returnValue").value = response;
                });
            }
  • 4.OC调用JS
    [_webViewBridge callHandler:@"testJSFunction" data:@"一个字符串" responseCallback:^(id responseData) {
        NSLog(@"调用完JS后的回调:%@",responseData);
    }];
  • 5.JS响应OC调用
     setupWebViewJavascriptBridge(function(bridge) {
                 bridge.registerHandler('testJSFunction', function(data, responseCallback) {
                    alert('JS方法被调用:'+data);
                    responseCallback('js执行过了');
                 })
            })

相关文章

网友评论

      本文标题:Objective-C与JS交互 —— WebViewJavas

      本文链接:https://www.haomeiwen.com/subject/svjjkxtx.html