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. base64和hex

    base64和hex 我们知道,字符分为二种:一种是可见字符:另一种是不可见字符. 1)三种编码方式 hex也称为base16,意思是使用16个可见字符来表示一个二进制数组,编码后数据大小将翻倍,因为 ...

  2. mac使用vnc远程登录ubuntu16.04桌面

    mac使用vnc远程登录ubuntu16.04桌面 1.安装在Ubuntu上安装x11vnc,如下: sudo apt-get install x11vnc 2.配置vnc密码 x11vnc -sto ...

  3. 原生JavaScript实现函数的防抖和节流

    原生JavaScript实现函数的防抖和节流 参考:https://www.jianshu.com/p/c8b86b09daf0 想详细了解的直接戳上面链接了,讲得非常清楚.下面只给代码和我自己写的注 ...

  4. Qt编写自定义控件50-迷你仪表盘

    一.前言 这个控件取名叫迷你仪表盘,是以为该控件可以缩小到很小很小的区域显示,非常适合小面积区域展示仪表数据使用,还可以手动触摸调节进度,是我个人觉得最漂亮小巧的一个控件.初次看到类似的控件是在一个音 ...

  5. Java不写文件,LOAD DATA LOCAL INFILE大批量导入数据到MySQL的实现(转)

    MySQL使用load data local infile 从文件中导入数据比insert语句要快,MySQL文档上说要快20倍左右.但是这个方法有个缺点,就是导入数据之前,必须要有文件,也就是说从文 ...

  6. netcore部署

    配置的几种方式: https://www.cnblogs.com/humin/p/10330983.html Linux下配置sdk: https://dotnet.microsoft.com/dow ...

  7. 如何去除PATH里的重复项并排序

    注意sed的用法,linux和Mac os不同,linux是Gnu的,Mac是BSD的 PATH排序去掉重复内容 mac和linux的换行符替换方法不一样,如下是Mac下的操作 export PATH ...

  8. Net中实现HTML生成图片或PDF

    Net中实现HTML生成图片或PDF的几种方式 前段时间由于项目上的需求,要在.Net平台下实现把HTML内容生成图片或PDF文件的功能,特意在网上研究了几种方案,这里记录一下以备日后再次使用.当时想 ...

  9. css中盒子模型与box-sizing属性

    盒子模型 w3c标准:定义的width为 内容,有padding,border 都会使得 最终呈现的宽度为 定义的width+padding+border的总和,有margin另加 ie标准:定义的w ...

  10. js中实现base64加密、解密

    //base64加密 解密 /* //1.加密 var result = Base.encode('125中文'); //--> "MTI15Lit5paH" //2.解密 ...