安卓原生和JS互相调用

参考链接https://blog.csdn.net/carson_ho/article/details/64904691

JS调原生

1.定义一个交互类
private class MJavascriptInterface {  

    private Context context;  

    public MJavascriptInterface(Context context) {  
        super();  
        this.context = context;  
    }  

    //原生方法供JS调用
    @JavascriptInterface  
    public void jsCallWebView(String url) {  
        //Android代码逻辑  
    }  
} 
2. WebView开启JS交互
webSettings.setJavaScriptEnabled(true);//设置js可用  
MJavascriptInterface mJavascriptInterface = new MJavascriptInterface(this); //初始化本地方法接口  
webView.addJavascriptInterface(mJavascriptInterface, "XXX");//添加到webview  
3.JS调用原生方法
window.XXX.jsCallWebView(param); 

XXX就是第2步中的XXX

原生调JS

webView.loadUrl("javascript:callJS()");  //不带参数
webView.loadUrl("javascript:callJS('" + msg + "')");

其中javascript:是固定的
callJS是js里面定义的方法名
msg是方法中的参数

webView.loadUrl("javascript:"+callback+"()");  

其中callback是动态传递的方法名字

WebView小知识

1. WebChromeClient
2. WebViewClient
3. DownloadListener
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容