Android基础我爱编程

安卓原生和JS互相调用

2018-06-06  本文已影响0人  sofarsogoo_932d

参考链接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
上一篇下一篇

猜你喜欢

热点阅读