简单的 android 和js 互调 ,记录一下

 
设置一下WebView
WebView webView = findViewById(R.id.webView);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);//设置能够解析Javascript
webSettings.setDomStorageEnabled(true);//设置适应Html5的一些方法
webSettings.setUseWideViewPort(true);
webSettings.setLoadWithOverviewMode(true);

  Map<String, String> headers= new HashMap<String, String>();
        headers.put("token", token);
// function 是后台定义的方法名,比如 xxx.xxx.function(),
// WebInterface是具体获取的方法,@JavascriptInterface 注解一定要加
        webView.addJavascriptInterface(new WebInterface(), "function");
// headers是添加的请求头,不需要可以去掉
        webView.loadUrl(PathManager.shopIndex, headers);

        public class WebInterface {
            @JavascriptInterface
            public void postMessage(String result) {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
//TODO  如果请求成功的话,result就是交互返回的数据
                    }
                });
            }
        }

 

Android 调 js
webView.setWebViewClient(new WebViewClient() {
    // 放在webView加载完成时 调用
    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
   
        try {
            String msg = "show content";
            // 括号中就是要给js 传的数据,一定要转义!转义 - -.
            webView.loadUrl("javascript:showInfoFromJava(\"" + msg + "\")");

        } catch (Exception e) {
            e.printStackTrace();
        
        }

    }
});

 

 

 

如果想要在webView上操作上传图片  可以参考:https://www.jb51.net/article/105986.htm也可以使用js 调Android的方法进行交互

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值