原生调用Web端代码WebView是Native中加载网页的控件。该组件提供了一个evaluateJavascript()方法来运行JS代码。我们要做的就是在Native端执行一个js方法,在Web端监听。Web端定义方式window.doit=function(data){console.log(data);};本机调用webView.evaluateJavascript("window.doit('fromnativedata')",null);Web端调用native代码当Web端想要请求Native端的方法时,首先需要自定义一个URLSchema,向Native端发起请求,最后在Native端的WebView上监听。URLschema介绍URLschema是一种类URL的请求格式,如::///?Web端发送URLschema请求比如我们可以通过修改一个hidden来实现发送iframeaddressRequest:温馨提示:一般情况下,可以通过window.location实现发起网络请求的效果。href,但是有一个很严重的问题就是,如果我们连续多次修改window.location.href的值,Native层只能接收到最后一个请求,而前面的请求会被忽略。所以,当JS端发起网络请求时,需要使用iframe,这样就可以避免这个问题。Android中监听Android的原生实现(在WebViewClient中),urlscheme的触发可以通过shouldoverrideurlloading捕获:自己分析处理//如果返回false,WebView处理链接url,如果返回true,表示WebView按照程序执行urlreturntrue;}}温馨提示:另外,scheme可以在没有iframe的情况下触发,通过window.prompt(uri,"");触发scheme,然后在native中重写WebViewClient的onJsPrompt获取uri。