1.html代码

<script type="text/javascript">
function javacalljs(){
document.getElementById("content").innerHTML = "JAVA调用了JS的无参函数";
}
function javacalljswith(arg){
document.getElementById("content").innerHTML = (arg);
}
</script>
<input type="button" value="点击调用java代码" onclick="window.android1.jsCall()" />
<input type="button" value="点击调用java代码并传递参数" onclick="window.android1.jsCall('paramsvalue')" />

2.java代码

import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.webkit.JavascriptInterface;
import android.webkit.WebView;
import android.widget.Toast; import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick; /**
* Android 和 js 的互相调用
* 布局文件为 2个 button,一个WebView
*/
public class ActivityWebView extends Activity {
@BindView(R.id.webView)
WebView webView; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ble);
ButterKnife.bind(this); webView.loadUrl("http://192.168.61.104:8080/update/android_js.html");
webView.getSettings().setJavaScriptEnabled(true);// 启用javascript
webView.addJavascriptInterface(this, "android1"); // android1 为html中的别名
} /**
* 被js调用的函数
*/
@JavascriptInterface
public void jsCall() {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(ActivityWebView.this, "无参数的方法被js调用", Toast.LENGTH_SHORT).show();
}
});
} /**
* 被js调用的函数 jsCall
* jsCall这个为html中的函数名字
* 必须加上 @JavascriptInterface 这个注解
*/
@JavascriptInterface
public void jsCall(final String params) {
runOnUiThread(new Runnable() {
@Override
public void run() {
new AlertDialog.Builder(ActivityWebView.this).setMessage(params).show();
}
});
} @OnClick(R.id.btn0)
public void btn0() {
webView.loadUrl("javascript:javacalljs()");// 调用无参的js: javacalljs 为js的函数名
} @OnClick(R.id.btn1)
public void btn1() {
String params = "params";// 调用有参的js: javacalljswith 为js的函数名,params 为参数值
webView.loadUrl("javascript:javacalljswith('" + params + "')");
}
}

参考: http://blog.csdn.net/leejizhou/article/details/50894531/

android 和 js 交互的更多相关文章

  1. Webview Android与js交互

    Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true Android(Java)与JavaScript(HTML) ...

  2. Android与js交互实例

    Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true Android(Java)与JavaScript(HTML) ...

  3. Android与js交互拍照上传资料

    应用场景:h5通知android端拍照,选相册,然后将图片路径上传成功之后,获取到网络路径,将此路径返还给h5界面,并展示出来. android与js快速交互 效果图如下:   1.在Activity ...

  4. Android与js交互

    本文转载自:http://blog.csdn.net/it1039871366/article/details/46372207 一文. Android 中可以通过webview来实现和js的交互,在 ...

  5. Android与JS交互,json传参问题

    一.JS调用Android的方法 JS调用安卓的方法,并且传递的参数为json格式的字符串(JSONObject.toString()), 例如: var json = {"name&quo ...

  6. Android—android与js交互以及相互传参

    Android中可以通过WebView来实现与js的交互,让用户可以在android客户端看到js写的页面,接下来为大家介绍的就是怎样实现此功能: 首先android项目目录下有“assets”文件夹 ...

  7. android webview js交互 第一节 (java和js交互)

    转载请注明出处         挺帅的移动开发专栏  http://blog.csdn.net/wangtingshuai/article/details/8631835        在androi ...

  8. Android 和 JS交互方法初探

    起初有个需求,就是需要监听网页的图片点击,然后图片单独跳转到另一个页面单独显示 这里就需要用JS和Android Native方法之间的通信 先说上面的解决办法之前先引出两个Android的方法 1: ...

  9. android与JS交互,互相调用方法,跳转到网页

    在main下面New - Folder - Assets Folder,在Assets下面新建一个js_android.html <html><head> <meta h ...

随机推荐

  1. IDEA在线和离线安装lombok

    1. IDEA在线安装: 点击安装,电子reset 如果以上方式安装失败,  去以下任意网站下载对应版本插件安装: http://plugins.jetbrains.com/plugin/6317-l ...

  2. android studio: no idea annotations attached to the jdk 1.8 some issues will not be found

    Android Studio今天早上打开项目提示错误信息: No IDEA annotations attached to the JDK 1.8 (C:\Program Files\Android\ ...

  3. vue项目中 favicon.ico不能正确显示的问题

    方法一:修改index.html文件 <link rel="shortcut icon" type="image/x-icon" href="f ...

  4. 《高性能mysql》笔记(第一章,mysql的架构与历史)

    mysql的服务器逻辑架构图如下: 目前工作用的5.5版本,5.5版本开始mysql开始将innoDB作为默认的存储引擎,innoDB的表是基于聚簇索引建立的. mysql的存储引擎锁管理非常重要,在 ...

  5. OpenStack Heat模板详解

    Heat模板全称为heat orchestration template,简称为HOT. 1 典型Heat模板结构 heat_template_version: 2015-04-30 descript ...

  6. IntelliJ-svn配置与使用

    目录 IntelliJ-svn配置与使用 SVN的配置 版本控制主要操作按钮 版本控制相关的常用设置 Version Control窗口 @(目录) IntelliJ-svn配置与使用 SVN的配置 ...

  7. C#反射回顾笔记

    一 .反射概述 反射提供描述程序集.模块和类型的对象(Type 类型). 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型,然后调用其方法或访问其字段和属性. 如果代码中 ...

  8. .net视频截图功能,没测试

    /// <summary> /// @从视频文件截图,生成在视频文件所在文件夹 /// 在Web.Config 中需要两个前置配置项: /// 1.ffmpeg.exe文件的路径 ///  ...

  9. VLOOKUP函数 from Excel

    1.VLOOKUP函数是Excel中的一个纵向查找函数,它与LOOKUP函数和HLOOKUP函数属于一类函数,在工作中都有广泛应用,例如可以用来核对数据,多个表格之间快速导入数据等函数功能.功能是按列 ...

  10. Andrew Ng机器学习课程17(1)

    Andrew Ng机器学习课程17(1) 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明:主要介绍了强化学习与监督学习的设定上的区别,以及强化学习的框架 ...