java和js互相调用
1 在assert中创建html文件
<html>
<head>
<script type="text/javascript" charset="utf-8">
<!--html函数 供java代码调用-->
function updateHtml(){
document.getElementById("content").innerHTML =
"call js fun from java";
}
</script>
</head>
<body>
this is my html
<!--html中调用java函数,其中startPhoto为java方法名,calljava为别名-->
<a onClick="window.calljava.startPhoto()" href="";>Call Java Fun From JS</a>
<span id="content"></span>
</body>
</html>
2 java代码
//初始化webView
private void initWebView() {
// 加上这句话才能使用javascript方法
mWebView.getSettings().setJavaScriptEnabled(true);
// 加载assets目录下面的demo.html 界面
mWebView.loadUrl("file:///android_asset/demo.html");
// 增加接口方法,让html页面调用 第二个参数为别名,在html 中调用会使用
mWebView.addJavascriptInterface(this, "calljava");
}
// java调用js
mWebView.loadUrl("javascript:updateHtml()");
//供html调用的java方法
public void startPhoto() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 1);
}
1 在assert中创建html文件
<html>
<head>
<script type="text/javascript" charset="utf-8">
<!--html函数 供java代码调用-->
function updateHtml(){
document.getElementById("content").innerHTML =
"call js fun from java";
}
</script>
</head>
<body>
this is my html
<!--html中调用java函数,其中startPhoto为java方法名,calljava为别名-->
<a onClick="window.calljava.startPhoto()" href="";>Call Java Fun From JS</a>
<span id="content"></span>
</body>
</html>
2 java代码
//初始化webView
private void initWebView() {
// 加上这句话才能使用javascript方法
mWebView.getSettings().setJavaScriptEnabled(true);
// 加载assets目录下面的demo.html 界面
mWebView.loadUrl("file:///android_asset/demo.html");
// 增加接口方法,让html页面调用 第二个参数为别名,在html 中调用会使用
mWebView.addJavascriptInterface(this, "calljava");
}
// java调用js
mWebView.loadUrl("javascript:updateHtml()");
//供html调用的java方法
public void startPhoto() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 1);
}