今天做了一个android与javascript相互调用的例子程序,现在把代码分享出来,并做一点个人的解释. 由于本人不是做网页的,所以在网页端只是写了一个简单的html按钮,内嵌一个javascript的函数.. 也没有做任何的美化,希望做网站的大哥大姐们看到不要呕吐哦! 呵呵! 好了,下面进入正题。
先介绍一下程序运行的流程,当用户进入界面,首先展示在眼前的是一个html网页,当然这个网页有点粗糙,只有一个按钮.. 嘿嘿! 当用户点击按钮的时候,执行android activity useAndroid()方法,而这个方法的功能有两个,一是跳转android activity,为了让大家感受到android端调用javascript,已将此方法注释掉.. 另一个功能是调用javascript更新html按钮value。。 本例中展示的是第二个功能..
先介绍一下程序运行的流程,当用户进入界面,首先展示在眼前的是一个html网页,当然这个网页有点粗糙,只有一个按钮.. 嘿嘿! 当用户点击按钮的时候,执行android activity useAndroid()方法,而这个方法的功能有两个,一是跳转android activity,为了让大家感受到android端调用javascript,已将此方法注释掉.. 另一个功能是调用javascript更新html按钮value。。 本例中展示的是第二个功能..
1、先看test.html
<!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>javascript确实很强大</title>
</head>
<body>
<script type="text/javascript">
//这是javascript中的函数,android activity中调用它.. 当调用成功后会将html按钮value改变。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
//随便写了一个标题
<title>javascript确实很强大</title>
</head>
<body>
<script type="text/javascript">
//这是javascript中的函数,android activity中调用它.. 当调用成功后会将html按钮value改变。
function javascriptMethod(){
document.getElementById("button_id").value="这是点击之后的按钮,不知道调用到没有呢?";
}
</script>
//这是html按钮,id、value大家应该都知道什么意思了.. 这里重点说一下onClick, onClick是为html
document.getElementById("button_id").value="这是点击之后的按钮,不知道调用到没有呢?";
}
</script>
//这是html按钮,id、value大家应该都知道什么意思了.. 这里重点说一下onClick, onClick是为html
//按钮添加的点击响应事件,这里如果点击之后,会去调用android activity中的useAndroid()方法.
//connectionName是相互的借口名称,可以随便写,只要两端一致就可以.
<input id="button_id" type="button" value="点击调用activity中的方法"
//connectionName是相互的借口名称,可以随便写,只要两端一致就可以.
<input id="button_id" type="button" value="点击调用activity中的方法"
onClick="window.connectionName.useAndroid()"/>
</body>
</html>
</body>
</html>
2、android activity 中的代码
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.webkit.WebSettings;
import android.webkit.WebView;
public class TestJs extends Activity {
//webview控件
private WebView webview;
//private Handler Mhandler = new Handler();
//webview控件
private WebView webview;
//private Handler Mhandler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.test_js);
webview = (WebView)this.findViewById(R.id.webview);
//得到WebSettings
WebSettings settings = webview.getSettings();
//设置支持javascript
settings.setJavaScriptEnabled(true);
//添加一个javascript接口
webview.addJavascriptInterface(new Object(){
//自定义方法
public void useAndroid() {
//跳转activity
/*Intent mIntent = new Intent(TestJs.this,TestActivity3.class);
TestJs.this.startActivity(mIntent);*/
//调用javascript方法,更新html按钮value
webview.loadUrl("javascript:javascriptMethod()");
}
}, "connectionName"); //接口名
//加载本地的html网页
webview.loadUrl(" file:///android_asset/test.html");
}
}
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.test_js);
webview = (WebView)this.findViewById(R.id.webview);
//得到WebSettings
WebSettings settings = webview.getSettings();
//设置支持javascript
settings.setJavaScriptEnabled(true);
//添加一个javascript接口
webview.addJavascriptInterface(new Object(){
//自定义方法
public void useAndroid() {
//跳转activity
/*Intent mIntent = new Intent(TestJs.this,TestActivity3.class);
TestJs.this.startActivity(mIntent);*/
//调用javascript方法,更新html按钮value
webview.loadUrl("javascript:javascriptMethod()");
}
}, "connectionName"); //接口名
//加载本地的html网页
webview.loadUrl(" file:///android_asset/test.html");
}
}
到这里就介绍完了, 希望对大家有点帮助!