随记9——Android和H5交互

xiaoxiao2021-02-28  81

女神镇楼

时间紧,不说废话了。

1、设置WebView支持js

settings.setJavaScriptEnabled(true); 2、添加js接口

wv_view.addJavascriptInterface(new JSInterface(), "Android"); 3、为WebView设置Client

wv_view.setWebChromeClient(new WebChromeClient()); wv_view.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) { //返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器 view.loadUrl(url); return true; } });

4、和h5定义接口方法譬如

private class JSInterface { //JS需要调用的方法 @JavascriptInterface public void onClickBack(String id){ //返回 H5Activity.this.finish(); } }5、Android调用H5

//有返回值 wv_view.evaluateJavascript("javascript:getimg()", new ValueCallback<String>() { @Override public void onReceiveValue(String value) { ToastUitl.showShort(value); } }); String jsStr = "javascript:geTimg(\"" + sb.toString() + "\")";//有参数 wv_view.loadUrl(jsStr); // wv_view.loadUrl("javascript:getimg()");//没参数 注意:js方法里的参数,别忘了""。还有一点要非常注意的是:一定要在UI线程中调用!可以用Handler或者runOnUiThread方法处理。注意:js方法里的参数别忘了""。还有一点要非常注意的是:一定要在UI线程调用!可以使用Handler或者runOnUIThread方法处理。我这边有一个情况是:当h5有多层页面时,js要写在页面上才会被调用到。这可能是个坑~

转载请注明原文地址: https://www.6miu.com/read-82764.html

最新回复(0)