美文网首页
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