import java.util.ArrayList;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.util.Log;import android.webkit.WebView;public class FirstActivity extends Activity{private WebView web;//模拟号码簿private ArrayList<Contact> contacts = new ArrayList<Contact>();    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        initContacts();        web = (WebView)this.findViewById(R.id.webView);                web.getSettings().setJavaScriptEnabled(true);//开启javascript设置,否则WebView不执行js脚本        web.addJavascriptInterface(this,"phonebook"); //处理window.phonebook.xxx()的标志                web.loadUrl("file:///android_asset/phonebook.html");    }        /**     * 该方法将在js脚本中,通过window.phonebook.getContacts()进行调用     * 返回的ArrayList对象可以使得在js中访问Java集合     * @return     */    public ArrayList<Contact> getContacts(){    return contacts;        }        /**     * 初始化电话号码簿     */    public void initContacts(){    Contact instance = new Contact();    instance.name = "Benny";    instance.phone = "13700000";    contacts.add(instance);    instance = new Contact();    instance.name = "Tommy";    instance.phone = "15800000";    contacts.add(instance);    }        /**     * 通过window.phonebook.log来输出js调试信息。     * @param info     */    public void log(String info){    Log.i("tag",info);    }        public void startActivity(){    Intent intent = new Intent(this,SecondActivity.class);    startActivity(intent);    } }


assets/phonebook.html:
<html> <head> <title>js交互android</title> <script type="text/javascript">window.onload = function(){var persons = window.phonebook.getContacts();//调用FirstActivity.getContacts()if(persons){//persons是ArrayList对象window.phonebook.log("共有"+persons.size()+"个联系人");var contactsE = document.getElementById("contacts");var i = 0; while(i < persons.size()){//persons是ArrayList对象pnode = document.createElement("p");tnode = document.createTextNode("name: " + persons.get(i).getName() + " number: " + persons.get(i).getPhone());pnode.appendChild(tnode);contactsE.appendChild(pnode);i ++;}}else{window.phonebook.log("persons is null.");}};</script> </head> <body> <input type="button" onclick="window.phonebook.startActivity()" value="Goto next" /><div id = "contacts"><p> this is a JS_Android demo </p></div></body> </html> 

更多相关文章

  1. 在android中创建包含对象数组对象List 的Parcelable
  2. android解析二维数组对象key:value
  3. Android 编译流程解析01-AppPlugin初始化
  4. Gradle for Android 脚本编写总结
  5. Android五大布局对象
  6. android 软键盘隐藏 activity初始化时edittext聚焦
  7. Android 随时随地键值对存储对象解决方案

随机推荐

  1. Failed to fetch URL http://dl-ssl.goog
  2. Android(安卓)build system分析
  3. android:padding和android:margin的区别
  4. 软件工程 大四团队 android j2ee 求实习
  5. VMware虚拟机安装安卓(Android)x86系统图文
  6. android直接用v4l2采集图片数据
  7. 使用android:autoSizeMinTextSize需要api
  8. Android(安卓)FrameWork 底层开发
  9. Android中串口通讯的问题
  10. 在网址中跳转APP(进入XXXAPP内查看)