当前位置:K88软件开发文章中心编程语言APP编程Android01 → 文章内容

7.5.2 WebView和JavaScrip交互基础

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-12 6:26:56

ublic void onClick(DialogInterface dialog, int which) { result.confirm(); } }).setCancelable(false).show(); return true; } @Override public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) { new Builder(MainActivity.this).setTitle("Confirm对话框").setMessage(message) .setPositiveButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { result.confirm(); } }) .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { result.cancel(); } }).setCancelable(false).show(); return true; } @Override public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, final JsPromptResult result) { //①获得一个LayoutInflater对象factory,加载指定布局成相应对象 final LayoutInflater inflater = LayoutInflater.from(MainActivity.this); final View myview = inflater.inflate(R.layout.prompt_view, null); //设置TextView对应网页中的提示信息,edit设置来自于网页的默认文字 ((TextView) myview.findViewById(R.id.text)).setText(message); ((EditText) myview.findViewById(R.id.edit)).setText(defaultValue); //定义对话框上的确定按钮 new Builder(MainActivity.this).setTitle("Prompt对话框").setView(myview) .setPositiveButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //单击确定后取得输入的值,传给网页处理 String value = ((EditText) myview.findViewById(R.id.edit)).getText().toString(); result.confirm(value); } }) .setNegativeButton("取消", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { result.cancel(); } }).show(); return true; } }}3.HTML通过JS读取Android联系人并显示该代码实现的是通过js读取Android手机中联系列表,然后显示到HTML中当我们点击某个电话号码时,会直接跳转到拨号页面实现关键:利用onload()在网页加载的时候加载相应的js脚本,而js脚本中定义的一个函数是取出传递过来的对象,获取里面的数据,通过for循环以单元行的形式打印出来!运行效果图:实现代码:往assets文件夹下编写要给demo3.html文件,内容如下:<html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>显示获取的联系人列表</title> <script language="JavaScript"> function show(jsondata) { //将传递过来的Json转换为对象 var jsonobjs = eval(jsondata); //获取下面定义的表格 var table = document.getElementById("PersonTable"); //遍历上面创建的Json对象,将每个对象添加为 //表格中的一行,而它的每个属性作为一列 for(var i = 0;i < jsonobjs.length;i++) { //添加一行,三个单元格: 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); //设置单元格的内容和属性 //其中innerHTML为设置或者获取位于对象起始和结束标签内的HTML //jsonobjs[i]为对象数组中的第i个对象 td1.innerHTML = jsonobjs[i].id; td2.innerHTML = jsonobjs[i].name; //为现实的内容添加超链接,超链接会调用Java代码中的 //call方法并且把内容作为参数传递过去 td3.innerHTML = "<a href = 'javascript:sharp.call(\""+jsonobjs[i].phone + "\")'>" +jsonobjs[i].phone + "</a>";; } } </script></head><!-- onload指定该页面被加载时调用的方法,这里调用的是Java代码中的contactlist方法--><body style="margin:0px; background-color:#FFFFFF; color:#000000;" onload = "javascript:sharp.contactlist()"><!--定义一个表格--><table border = "0" width = "100%" id = "PersonTable" cellspacing = "0"> <tr> <td width = "15%">用户id</td> <td align = "center">姓名</td> <td width = "15%">号码</td> </tr></table></body></html> 再写一个业务类Contact.java:/** * Created by Jay on 2015/9/11 0011. */public class Contact { private String id; private String name; private String phone; public Contact(){} public String getId() { return i

上一页  [1] [2] [3]  下一页


7.5.2 WebView和JavaScrip交互基础