美文网首页Android基础我爱编程
安卓原生和JS互相调用

安卓原生和JS互相调用

作者: sofarsogoo_932d | 来源:发表于2018-06-06 18:45 被阅读0次

    参考链接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

    相关文章

      网友评论

        本文标题:安卓原生和JS互相调用

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