需要在页面加载完成之后才能注入自定义js方法
webView.setWebViewClient(new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {//view.loadUrl(url);return true;//true时,不可点击跳页效果,false时,可以点击跳页}@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {}@Overridepublic void onPageFinished(WebView view, String url) {view.getSettings().setJavaScriptEnabled(true);webView.loadUrl("javascript:window.yxbl_app.getBodyHeight($(document.body).height())");//注入自定义方法——获取webview高度的方法super.onPageFinished(view, url);}});
原生调用已注入的js方法
public static final String js2Android = "yxbl_app";private int webViewHeight;
webView.addJavascriptInterface(new WebViewJavaScriptFunction() {@Overridepublic void onJsFunctionCalled(String tag) {// TODO Auto-generated method stub}/*** 高度*/@JavascriptInterfacepublic void getBodyHeight(String number) {webViewHeight = Integer.parseInt(number.split("[.]")[0]);}},js2Android);
附:自定义接口
/*** 作者:created by meixi* 邮箱:108520@* 日期:/7/22 09*/public interface WebViewJavaScriptFunction {void onJsFunctionCalled(String tag);}
如果觉得《android webView注入js方法》对你有帮助,请点赞、收藏,并留下你的观点哦!