80,351
社区成员
发帖
与我相关
我的任务
分享
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>这是一个html页面
<div id="output" >test</div> //这里的test会被window.demo.mydata()所取代
//而mydata在android会返回10,所以这里<div id="output">10</div>
<input type="submit" value="buttons"
// js调用android方法,调用方式window.接口名.方法名
onclick="document.getElementById(’output’).innerHTML=demo.mydata()"/>
</body>
</html>
function fillContent(){
window.demo.log();
}
public void log(){
log.v("temp","here is called from javascript");
}
mWebView. addJavascriptInterface(new 类名(),接口名);
//注意这里的类名可以是任何类,如果是当前activity本身,则可以用this代替,那么就要注意了
//js可以调用的方法必须是指定类的方法,否则会出现错误
private WebView mWebView;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
mWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = mWebView.getSettings();
webSettings.setSavePassword(false);
webSettings.setSaveFormData(false);
webSettings.setJavaScriptEnabled(true);
webSettings.setSupportZoom(true);
mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "demo"); //添加js接口,这里是demo,供html调用,调用的方式是:window.接口名(这里是demo).方法名(接口中的方法)
mWebView.loadUrl("file:///android_asset/demo.html"); ///demo.html文件放在assets目录下
//android调用js方法
//mWebView.loadUrl( javascript:fillContent()");//注意这里的fillContent()方法是在html实现的js方法
}
final class DemoJavaScriptInterface {
DemoJavaScriptInterface() {
}
public int mydata(){
return 10;
}
}
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>这是一个html页面
<div id="output" >test</div>
<input type="submit" value="buttons"
// js调用android方法,调用方式window.接口名.方法名
onclick="document.getElementById(’output’).innerHTML=demo.mydata()"/>
</body>
</html>