美文网首页
WebViewJavaScriptBridge 添加remove

WebViewJavaScriptBridge 添加remove

作者: 小小小小饼 | 来源:发表于2022-03-04 09:26 被阅读0次

    项目里需要原生与H5进行交互,使用到了registerHandler、callHandler,WebViewJavaScriptBridge在iOS代码里有对应的removeHandler方法

    企业微信截图_e117e1da-34d3-4ed7-aa2e-de8f9f67bf92.png

    但是在WebViewJavaScriptBridge_JS文件夹中没有removeHandler方法,于是新增里以下JS

    window.GaiaWebViewJavascriptBridge 里添加removeHandler

        window.GaiaWebViewJavascriptBridge = {
            registerHandler: registerHandler,
            callHandler: callHandler,
            disableJavscriptAlertBoxSafetyTimeout: disableJavscriptAlertBoxSafetyTimeout,
            _fetchQueue: _fetchQueue,
            _handleMessageFromObjC: _handleMessageFromObjC,
            removeHandler: removeHandler,
        };
    

    messageHandlers是默认处理函数,当JS调用OC方法时,根据方法名称找到不同的OC的block,或通过send()方法调用OC时,调用该默认messageHandlers。
    所以实现removeHandler方法,只需要将messageHandlers对应的键值对删除即可。
    实现removeHandler方法

        function removeHandler(handlerName) {
            if(messageHandlers[handlerName]){
               delete messageHandlers[handlerName];
            }
        }
    
    

    扩展:
    WebViewJavaScriptBridge是一个轻量的OC与JS桥接机制,主要包含三个类,JS端window.WebViewJavascriptBridge,OC端WebViewJavascriptBridge和WebViewJavascriptBridgeBase。桥接类支持JS调用OC方法,OC调用JS方法。
    JS调用OC通过重定向URL并获取HandlerName来调用,OC调用JS通过stringByEvaluatingJavaScriptFromString调用。
    参考网上资料:https://blog.csdn.net/panfeng200866/article/details/60591015

    相关文章

      网友评论

          本文标题:WebViewJavaScriptBridge 添加remove

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