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:
<!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>Insert title here</title>
<script type="text/javascript">
function show(jsondata){
var jsonobjs = eval(jsondata);
var table = document.getElementById("personTable");
for(var y=0; y<jsonobjs.length; 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 = "<a href='javascript:contact.call(\""+ jsonobjs[y].phone+ "\")'>"+ jsonobjs[y].phone+ "</a>";
}
}
</script>
</head>
<body onload="javascript:contact.showcontacts()">
<table border="0" width="100%" id="personTable" cellspacing="0">
<tr>
<td width="30%">姓名</td>
<td width="30%" align="center">存款</td>
<td align="center">电话</td>
</tr>
</table>
</body>
</html>
拨打电话需要添加权限:
<uses-permission android:name="android.permission.CALL_PHONE" />
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
本示例将深入探讨如何实现Android和JavaScript的互相调用,以便于在混合应用开发中创建更加丰富的用户体验。 Android调用JavaScript: 在Android应用中,我们通常使用WebView来加载网页内容。通过WebView提供的`...
总结,Android与JavaScript的互相调用涉及到`WebView`组件、`WebViewClient`、`addJavascriptInterface()`、`evaluateJavascript()`等关键方法,以及`postMessage()`、`message`事件和URL Scheme等通信机制。...
Android 与 js 之间的调用Android开发之WebView的使用 WebView与javascript相互调用 .WebView不但可以运行一段HTML代码,还有一个重要特点,就是WebView可以同Javascript互相调用。 通过addJavascriptInterface...
本篇文章将详细探讨Android中的WebView与JavaScript如何进行交互,包括互相调用的原理、步骤以及注意事项。 **一、WebView基础知识** 1. **WebView的引入**:在Android应用中,我们需要在布局XML文件中添加WebView...
总结,UE和Android互相调用涉及到多个层次的技术,包括UE的Android平台支持、Java与C++的交互、JNI编程、自定义UI设计、Blueprint逻辑以及性能优化。理解并熟练掌握这些知识点,将有助于在Android设备上创建引人入胜...
本教程将详细介绍如何在Android与H5之间进行相互调用,让Java与JavaScript之间实现无缝通信。 首先,我们要了解Android中的WebView组件。WebView是Android SDK提供的一种原生控件,它允许我们在Android应用中加载和...
本文将深入探讨如何在Android和JavaScript之间实现互相调用,包括Android调用JS的方法以及JS如何调用Android的特定功能,如输入文字到网页、访问本地相册、使用摄像头拍照以及播放本地视频。 一、Android调用...
总结来说,Android与HTML JavaScript的互调主要依赖`WebView`的`addJavascriptInterface`和`loadUrl`方法。Java端创建一个对象并暴露给JavaScript,JavaScript端通过`window对象`调用这些方法。同时,Android也可以...
本文将深入探讨如何在Android和iOS中实现JavaScript与原生代码的互相调用。 **一、Android中的JavaScript与Java互相调用** 1. **JavaScript调用Java:** 在Android中,我们可以使用`WebView`的`...
在这种情况下,Android的Java或Kotlin代码可以通过JavaScript接口(JS Bridge)调用`callJS`,从而实现Android和Vue.js之间的通信。 Android与Vue.js的互调通常涉及以下几个关键步骤: 1. **建立JS Bridge**:...
在Android开发中,有时我们需要在Java代码和JavaScript之间进行交互,比如从JavaScript中触发Android原生功能,或者从Android端向网页注入数据。这个过程通常涉及到Android的WebView组件和JavaScript接口的实现。...
这个方法允许我们在JavaScript和Android之间创建一个桥梁,让它们可以互相调用方法。例如: ```java WebView webView = (WebView) findViewById(R.id.web_view); webView.getSettings().setJavaScriptEnabled(true)...
注意,为了安全起见,从Android 4.2(API级别17)开始,应该使用`@JavascriptInterface`注解标记那些需要从JavaScript中调用的方法,以防止恶意代码访问。 在HTML文件中,我们可以像调用任何JavaScript函数一样调用...
本文将详细讲解如何在Android的WebView与JavaScript之间进行数据交互,即互相调用彼此的功能。 首先,为了实现WebView与JavaScript的交互,必须确保WebView支持JavaScript。在AndroidManifest.xml文件中添加网络...
这个方法允许我们在JavaScript中创建一个对象,该对象对应于Android中的一个类实例,从而实现JavaScript方法调用Android方法。以下是一个简单的示例: ```java webView.addJavascriptInterface(new JsBridge(), "wv...
本文将深入探讨如何实现Android Java代码与HTML中的JavaScript互相调用,并通过一个名为"MyWebviewSample"的示例项目来具体说明。 首先,我们要了解WebView组件。WebView是Android SDK提供的一种用于在应用内展示...
本篇主要介绍如何实现Android与JavaScript的互调,以及在Java和Js之间进行互相调用的方法。 首先,Android中的`WebView`组件是实现Android与JavaScript交互的基础。`WebView`是一个可以加载网页的视图,它可以解析...