android web应用中,Java与JavaScript的相互调用

在Android应用中加载一个包含Javascript的本地网页,调用其中的方法,步骤如下:

1.加载html

public void loadDataWithBaseURL(String baseUrl, String data,
	String mimeType, String encoding, String failUrl) {
}
//
webView.loadDataWithBaseURL("https://www.baidu.com", html, "text/html", "utf-8", null);

2.设置允许使用javascript

WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);

3.Java调用JavaScript

//一个参数
private void jsLoad(String id) {
	webView.loadUrl("javascript:loadJsMethod('" + id + "')");
}
//多个参数
 private void jsLoad(String id,String id1) {
	webView.loadUrl("javascript:loadJsMethod('" + id + "','" + seek + "')");
}
//无参数
private void jsLoad() {
	webView.loadUrl("javascript:loadJsMethod()");
}

没有返回值,所以想要得到Javascript的返回值就只能通过javascript回调java

4.javascript调用java

1)先在java类里面定义一个回调接口

 private class ScriptBridge {
 	@JavascriptInterface
 	public void onGo(String arg) {
		//todo
 	}
}

2)再在Javascript中执行

window.QualsonInterface.onGo(arg);

当你需要一个返回值时,可以直接在script里面调用这个方法,然后,通过回调将这个返回值当成参数传回去。

你可能感兴趣的:(Android,java,JavaScript)