本文实例讲述了Android和Javascript相互调用的方法。分享给大家供大家参考,具体如下:
Html页面和Java代码结合的方式一般用在界面经常被更改 的情况下,可以讲html放在网络中,软件一打开就会访问网络获取到最新的界面。缺点是会受到网络信号的影响,从而导致访问速度慢。
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
| 姓名 | 存款 | 电话 |
拨打电话需要添加权限:
复制代码 代码如下:
希望本文所述对大家Android程序设计有所帮助。



