WebViewJavascriptBridge 交互

function setupWebViewJavascriptBridge(callback) {
        //第一次调用这个方法的时候,为false
        if (window.WebViewJavascriptBridge) { return callback(WebViewJavascriptBridge); }
        //第一次调用的时候,为false
        if (window.WVJBCallbacks) { return window.WVJBCallbacks.push(callback); }
        //把callback对象赋值给对象
        window.WVJBCallbacks = [callback];
        //加载WebViewJavascriptBridge_JS中的代码
        var WVJBIframe = document.createElement('iframe');
        WVJBIframe.style.display = 'none';
        WVJBIframe.src = 'https://__bridge_loaded__';
        document.documentElement.appendChild(WVJBIframe);
        setTimeout(function() { document.documentElement.removeChild(WVJBIframe) }, 0)
    }
    //驱动所有hander的初始化
    setupWebViewJavascriptBridge(function(bridge) {
        //收到IOS传的方法
        bridge.registerHandler('testJavascriptHandler', function(data, responseCallback) {
            //OC中传过来的数据
            log('ObjC called testJavascriptHandler with', data);
           
            var responseData = { 'Javascript Says':'Right back atcha!' };
            responseCallback(responseData);

        })

       //向OC传方法

        bridge.callHandler('testObjcHandler', {'foo': 'bar'}, function(response) {

         log('JS got response', response)-->
       })

    })

猜你喜欢

转载自blog.csdn.net/qinlulucsdn/article/details/80108230