一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Android和JavaScript互相调用详细教程

时间:2012-01-18 编辑:简简单单 来源:一聚教程网

1.用WebView来显示HTML代码
2.允许WebView执行JavaScript
    webView.getSettings().setJavaScriptEnabled(true);
3.获取到HTML文件,也可从网络中获取
   webView.loadUrl("file:///android_asset/index.html");   //HTML文件存放在assets文件夹中
4.添加一个对象, 让JS可以访问该对象的方法, 该对象中也可以调用JS中的方法
   webView.addJavascriptInterface(new Contact(), "contact");
 
完整示例代码如下:

效果图:

 代码如下 复制代码

MainActivity
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.webkit.WebView;

public class MainActivity extends Activity {
private WebView webView;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//加载页面
webView = (WebView) findViewById(R.id.webView);
//允许JavaScript执行
webView.getSettings().setJavaScriptEnabled(true);
//找到Html文件,也可以用网络上的文件
webView.loadUrl("file:///android_asset/index.html");
// 添加一个对象, 让JS可以访问该对象的方法, 该对象中可以调用JS中的方法
webView.addJavascriptInterface(new Contact(), "contact");
}

private final class Contact {
//JavaScript调用此方法拨打电话
public void call(String phone) {
startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phone)));
}

//Html调用此方法传递数据
public void showcontacts() {
String json = "[{"name":"zxx", "amount":"9999999", "phone":"18600012345"}]"; 
// 调用JS中的方法
webView.loadUrl("javascript:show('" + json + "')");
}
}
}


HTML:


姓名
存款
电话

 代码如下 复制代码




Insert title here

function show(jsondata){ 
var jsonobjs = eval(jsondata);
var table = document.getElementById("personTable");
for(var y=0; y var tr = table.insertRow(table.rows.length); 
var td1 = tr.insertCell(0);
var td2 = tr.insertCell(1);
td2.align = "center";
var td3 = tr.insertCell(2);
td3.align = "center";
td1.innerHTML = jsonobjs[y].name; 
td2.innerHTML = jsonobjs[y].amount; 
td3.innerHTML = ""+ jsonobjs[y].phone+ ""; 
}
}






 

拨打电话需要添加权限:

 代码如下 复制代码

热门栏目