美文网首页
Android与js互调

Android与js互调

作者: _fanqh | 来源:发表于2019-01-07 09:24 被阅读0次
    一、Javascript调用Android代码
    //获取WebSettings对象
    WebSettings settings = webView.getSettings();
    
    //设置webview支持javascript
    settings.setJavaScriptEnabled(true);
    
    //绑定android对象到javascript对象,"obj"可以随意起名,与js端约定一致就好
    webView.addJavascriptInterface(new JavaScriptInterface(), "obj");
    
    //需要给js调用的方法全部写在这里,方法记得加@JavascriptInterface注解
    public class JavaScriptInterface {
    
        @JavascriptInterface
        public void jsCallNative() {
            Log.d("TAG", "js call native method!");
        }
    }
    
    //js中调用
    function jsCallNative() { 
        var money=toast*3;
        javascript:obj.jsCallNative();
    }
    
    二、Android调用Javascript代码
    //调用无参方法
    webview.loadUrl("javascript:JSMethod()"); //无法获取到返回值
    
    //调用有参方法
    mWebView.loadUrl("javascript:JSMethod('参数')");
    
    //如果你项目的minSdkVersion 为4.4 以上,可以通过这个方法获取到返回值
    //现在4.4以下的手机很少见了,如果需要适配4.4以下,可参考这篇文章 https://www.jianshu.com/p/47ea6970d85d
    webview.evaluateJavascript("javascript:JSMethod()", new ValueCallback<String>() {
                @Override
                public void onReceiveValue(String value) {
                    //value -> js方法的返回值
                }
            });
    

    相关文章

      网友评论

          本文标题:Android与js互调

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