sample demo
1.首先创建一个简单的android工程
2.修改layout文件main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<WebView
android:id="@+id/web"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="bottom|right">
<Button
android:layout_height="wrap_content"
android:id="@+id/Button_Send"
android:text="javatojs"
android:layout_width="400px"/>
</LinearLayout>
</RelativeLayout>
3.创建activity java类
package com.example.myandroidproj;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.os.Bundle;
import android.os.Handler;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.JavascriptInterface;
import android.webkit.WebView;
import android.widget.Button;
import android.util.Log;
public class IChartJsDemoActivity extends Activity {
private String TGA="IChartJsDemoActivity";
private WebView webView;
private Button send;
private Handler handler;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initUI();
}
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.ichart_js_demo, menu);
return true;
}
@SuppressLint("JavascriptInterface")
public void initUI(){
handler = new Handler();
webView = (WebView)this.findViewById(R.id.web);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("file:///android_asset/index.html");
//放置页面js对象
webView.addJavascriptInterface(new AndroidJsTool(), "androidJsTool");
send = (Button) this.findViewById(R.id.Button_Send);
send.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
JSONArray arr =new JSONArray();
for(int i=0;i<10;i++){
JSONObject json =new JSONObject();
try {
json.put("name", "jasion");
json.put("country", "中国");
json.put("mobile", "1882529831"+i);
arr.put(json);
} catch (JSONException e) {
Log.e(TGA, e.getMessage());
e.printStackTrace();
}
}
String paramStr = arr.toString();
//java 调用js
webView.loadUrl("javascript:initData("+paramStr+")");
}
});
}
final class AndroidJsTool{
//必须要加上这个注释,要不然html页面就访问不到这个方法
@JavascriptInterface
public void runOnAndroidJavaScript(final String str){
handler.post(new Runnable(){
public void run() {
//测试js调用java
Log.i(TGA, "hello world:"+str);
}
});
}
}
}
4.创建html文件 index.html,index.html文件要放在工程目录底下的assets里面
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script>
</script>
</head>
<body>
<table id="personTable">
<tr>
<td style="color:blue;">名称</td>
<td style="color:blue;">国家</td>
<td style="color:blue;">电话</td>
</tr>
</table>
<input type="text" id="wordsInput" /><br/>
<input type="button" id="sayWords" onclick="sayWord()" value="send to java" />
</body>
<script>
function sayWord(){
var words=document.getElementById("wordsInput").value;
androidJsTool.runOnAndroidJavaScript(words);//调用android的函数
}
function initData(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].country;
td3.innerHTML = jsonobjs[y].mobile;
}
}
</script>
</html>
- 大小: 138.2 KB
分享到:
相关推荐
综上所述,这个"Android中JS与Java相互调用Demo"主要演示了如何在Android应用中利用`WebView`组件实现JavaScript与Java的交互,这对于开发混合应用或者增强应用功能具有重要的实践价值。通过学习和理解这个Demo,...
在Android开发中,JavaScript(JS)与Java代码的相互调用是常见的需求,尤其是在混合式应用开发中。这种交互能够充分利用JavaScript的灵活性和Java的强大功能,实现更丰富的用户体验。本Demo旨在提供一个清晰、易懂...
5. **Java调用JavaScript函数** 通过`WebView`的`loadUrl()`方法,我们可以执行JavaScript代码,从而调用JavaScript函数。例如: ```java webView.loadUrl("javascript:androidBridge.receiveFromJava('这是来自...
本示例“android demo,webview_js”着重展示了如何通过Webview实现JavaScript调用Java方法的功能。这个功能对于创建混合式应用或者在原生应用中嵌入HTML5页面尤其有用。 首先,我们需要在Android布局文件中添加一...
本文将深入探讨如何在Android应用中调用JavaScript方法,以实现Android(Java)与HTML5(JS)的交互,具体以"android demo, android调用js方法"为主题,通过一个名为"webview_js2(android调用js方法)"的示例进行讲解...
这个"java_js_demo"项目很可能包含了一个简单的Android应用,演示了如何通过`WebView`组件在Android应用中加载HTML页面,并实现JavaScript与Java之间的双向通信。开发者可以通过分析和运行这个示例,深入理解这一...
这篇资源文章“android java和webview交互demo”详细介绍了如何在Java驱动的Android应用中使用WebView,并通过JavaScript接口进行数据交换。 **一、WebView基本使用** 1. **添加依赖** 在AndroidManifest.xml中,...
本示例项目"Webview与Javascript相互调用 (Android Studio)"就是专门针对这一功能的演示,它提供了直接在Android Studio中运行的代码,帮助开发者理解和实践WebView与JavaScript之间的通信。 首先,我们来深入理解...
本项目“android与js交互的demo”提供了一个示例,演示了如何在Android应用中加载HTML,并实现Android与JavaScript的有效通信。下面将详细阐述相关知识点。 1. **WebView组件**:WebView是Android SDK中的一个核心...
"android原生代码调用js demo"是一个展示如何在Android原生代码中调用JavaScript功能的小型示例项目。这个项目可能包含了一个或多个Java类,用于在Android环境中通过WebView组件与JavaScript交互。 在Android中,`...
1. **Java调用JavaScript:** 使用`evaluateJavascript()`方法,可以执行JavaScript代码并获取其返回值: ```java webView.evaluateJavascript("javascript:yourJsFunction('参数')", new ValueCallback() { @...
本教程通过"Android和React Native混合开发Demo",将详细介绍如何在Android应用中集成React Native,实现原生代码与React Native组件之间的双向通信。 首先,Android原生加载RN页面是混合开发的基础。这涉及到在...
这个"android 调用js demo"提供了一个实例,展示了如何在Android原生代码中调用JavaScript的功能,以及如何捕获并保存JavaScript页面的信息。让我们深入探讨这个话题。 首先,Android与JavaScript的交互主要依赖于...
在Android应用开发中,Web视图(WebView)是一种强大的组件,它允许开发者在原生应用中展示网页内容,甚至实现JavaScript与Java代码的交互。这个"Android-Android和Js交互Demo"是关于如何利用WebView来实现这种交互...
这个“PhoneGap js调用 android demo”是PhoneGap技术的一个实例,展示了如何通过JavaScript来调用Android平台的原生功能。 首先,我们需要理解PhoneGap的核心原理。PhoneGap提供了一个桥接机制,通过JavaScript...
下面我们将深入探讨这个“android webview与js交互简单demo”所涉及的知识点。 1. Android WebView基本使用: - 初始化WebView:在布局XML文件中添加WebView控件,并在Activity中通过findViewById()方法获取引用。...
在Android应用开发中,与JavaScript的交互是一种常见的需求,特别是在构建混合式移动应用时。本教程将探讨如何在Android和JavaScript之间实现双向通信,通过一个名为"AndroidCallHTMLDemo"的示例项目来阐述这一过程...
这个“Android与html交互的demo”很可能是为了演示如何在Android应用中通过WebView组件与内嵌的HTML5页面进行数据交换和功能调用。下面将详细解释这一交互过程的关键技术点。 1. **WebView组件**: Android中的...
这个"android WebView Demo"是一个示例项目,展示了如何在Android应用中使用WebView来加载HTML页面,并实现Android代码与JavaScript之间的相互调用功能。这个功能在很多场景下都非常实用,例如在原生应用中嵌入网页...
这个"Android与JS交互 DEMO"是一个典型的例子,展示了如何利用WebView组件来实现Android应用与JavaScript之间的通信。在这个DEMO中,我们将深入探讨以下几个关键知识点: 1. **WebView组件**:WebView是Android SDK...