webView.getSettings().setJavaScriptEnabled(true);//打开就可以用js的功能

 

webView.getSettings().setJavaScriptEnabled(true);//打开就可以用js的功能

Js代码,放在asset文件夹下,也可以在服务器端,这样改变内容,只需改服务器端,客户端不用修改

<!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 btn_test() {

/* 打印,logcat里的tag是Web Console */

console.log("btn_test");

}

function call_java() {

/* js调用java代码,需要接口 */

Window.interface_test.showToastFromWeb("hello i am javascript!");

}

function test_alert() {

/* 弹出对话框 */

alert("hello i am javascript!");

}

function test_confirm() {

/* 弹出带确定和取消按钮的对话框 */

var v = confirm("hello i am javascript!");

console.log("onfirm " + v);

}

function test_prompt() {

/* 弹出带输入框的对话框 */

var v = prompt("input you name!", "tom");

console.log("prompt " + v);

}

</script>

</head>

<body>

<button onclick="btn_test()">test</button>

<button onclick="call_java()">call_java</button>

<button onclick="test_alert()">test_alert</button>

<button onclick="test_confirm()">test_confirm</button>

<button onclick="test_prompt()">test_prompt</button>

<label tel:800800284>tel:8008233</label>

</body>

</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 btn_test() {

/* 打印,logcat里的tag是Web Console */

console.log("btn_test");

}

function call_java() {

/* js调用java代码,需要接口 */

Window.interface_test.showToastFromWeb("hello i am javascript!");

}

function test_alert() {

/* 弹出对话框 */

alert("hello i am javascript!");

}

function test_confirm() {

/* 弹出带确定和取消按钮的对话框 */

var v = confirm("hello i am javascript!");

console.log("onfirm " + v);

}

function test_prompt() {

/* 弹出带输入框的对话框 */

var v = prompt("input you name!", "tom");

console.log("prompt " + v);

}

</script>

</head>

<body>

<button onclick="btn_test()">test</button>

<button onclick="call_java()">call_java</button>

<button onclick="test_alert()">test_alert</button>

<button onclick="test_confirm()">test_confirm</button>

<button onclick="test_prompt()">test_prompt</button>

<label tel:800800284>tel:8008233</label>

</body>

</html>

Java代码里

webView.addJavascriptInterface(new Object(){

public void showToastFromWeb(String msg){

showToast(msg);

}

}, "interface_test");

webView.addJavascriptInterface(new Object(){

public void showToastFromWeb(String msg){

showToast(msg);

}

}, "interface_test");

webView.setWebChromeClient(new WebChromeClient(){

@Override

public void onProgressChanged(WebView view, int newProgress) {

//这里上一博文已提过

}

@Override

public boolean onJsAlert(WebView view, String url, String message,

JsResult result) {

// TODO Auto-generated method stub

return super.onJsAlert(view, url, message, result);

}

@Override

public boolean onJsConfirm(WebView view, String url,

String message, JsResult result) {

// TODO Auto-generated method stub

return super.onJsConfirm(view, url, message, result);

}

@Override

public boolean onJsPrompt(WebView view, String url, String message,

String defaultValue, JsPromptResult result) {

// TODO Auto-generated method stub

return super.onJsPrompt(view, url, message, defaultValue, result);

}

});

webView.setWebChromeClient(new WebChromeClient(){

@Override

public void onProgressChanged(WebView view, int newProgress) {

//这里上一博文已提过

}

@Override

public boolean onJsAlert(WebView view, String url, String message,

JsResult result) {

// TODO Auto-generated method stub

return super.onJsAlert(view, url, message, result);

}

@Override

public boolean onJsConfirm(WebView view, String url,

String message, JsResult result) {

// TODO Auto-generated method stub

return super.onJsConfirm(view, url, message, result);

}

@Override

public boolean onJsPrompt(WebView view, String url, String message,

String defaultValue, JsPromptResult result) {

// TODO Auto-generated method stub

return super.onJsPrompt(view, url, message, defaultValue, result);

}

});

// webView.loadUrl("javascript:btn_test()");

webView.loadUrl("file:///android_asset/test.html");

 

//          webView.loadUrl("javascript:btn_test()");

webView.loadUrl("file:///android_asset/test.html");

效果图

android webview与 java与javascript的交互的更多相关文章

  1. WebView中Java与JavaScript的交互

    原文首发于微信公众号:jzman-blog,欢迎关注交流! Android 开发过程中 WebView 的使用比较广泛,常用来加载网页,比如使用 WebView 加载新闻页面.使用 WebView 打 ...

  2. Android WebView 总结 —— Java和JavaScript交互

    交互如何实现 实现Java和js交互十分便捷.通常只需要以下几步. WebView开启JavaScript脚本执行 WebView设置供JavaScript调用的交互接口. 客户端和网页端编写调用对方 ...

  3. Android中Java与JavaScript之间交互(转)

    Android代码: package com.fyfeng.testjavascript; import android.app.Activity; import android.content.In ...

  4. 让Java和JavaScript进行交互

    本篇博文参考自:http://droidyue.com/blog/2014/09/20/interaction-between-java-and-javascript-in-android/ 我们在使 ...

  5. Android WebView 开发教程

    声明在先:必须在AndroidMainfest.xml 里面声明权限,否则在Java里面编写的所有WebView浏览网页的代码都无法正常使用 <uses-permission android:n ...

  6. Android WebView 加载超长 JS 数据

    在之前的文章里面,我总结过WebView如何与网页交互,也就是Java如何和JS交互 —— Android WebView 总结 —— Java和JavaScript交互. 基于这篇文章,我们基本上能 ...

  7. Android与javaScript的交互

    WebView与js的交互包含两方面,一是在html中通过js调用java代码:二是在安卓java代码中调用js. 一.html中通过js调用java代码 js中调用java代码其实就记住一点,Web ...

  8. WebView上实现Java与JavaScript交互

    在安卓开发上,考虑到开发效率和界面更新,有时使用WebView结合web页面技术,可以快速迭代地开发移动应用.WebView加载资源的速度并不慢,但是如果资源多了,就很慢.图片.css.js.html ...

  9. Android WebView与JavaScript交互操作(Demo)

    应用场景: 为了使Android移动项目能够在较短的时间内完成开发,同时降低技术人员开发的成本投入,往往会采用Hybrid APP的开发模式.相关Hybrid APP(混合型应用)参看:http:// ...

随机推荐

  1. 32和64位的CentOS 6.0下 安装 Mono 2.10.8 和Jexus 5.0

    http://www.cnblogs.com/shanyou/archive/2012/01/07/2315982.html shanyou 博客

  2. word双面打印的方法

    首先要明白打印的过程 先进入打印机的纸张顶部,肯定是先打印,这样就确定了纸张放置的方向,不会放倒了 肯定是打印在纸张的向上的那一面,这样就确定了打印的正反面 纸张打印的顺序肯定是从上到下,这样就确定了 ...

  3. Asp.Net之后台加载JS和CSS

    在Asp.Net开发时,用到的JS库.通用的CSS等,在许多页面都会用到,而每次都需要手动引入,相当麻烦,而且有时一旦忘了引用,还得找半天才能找到问题.那有没有什么办法能够一劳永逸的呢?答案是有的. ...

  4. wordpress自定义后台用户联系方式 添加qq、微博、微信

    在 WordPress 后台,个人设置(Profile)中,可以设置电子邮件和 Website,如何添加国人常用的 QQ, 微博,微信呢? <?php /* Plugin Name: Custo ...

  5. 悦动达人 (多维dp)

    悦动达人 Description 一个游戏,在屏幕上有5个格子形成一行,每一秒都会有一个格子闪烁,格子闪烁时你需要保证至少有一只手指在格子上面, 现在我们已经知道第i秒时,第xi个格子会闪烁,我们假设 ...

  6. HDU 1062 Text Reverse(水题,字符串处理)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1062 解题报告:注意一行的末尾可能是空格,还有记得getchar()吃回车符. #include< ...

  7. UIView中UIButton设置监听

    红色框框是一个uibutton _priceValueLabel是他的父视图, 必须要把button的父视图设置userInteractionEnabled = YES, button的 监听才会生效 ...

  8. 见招拆招:绕过WAF继续SQL注入常用方法

    Web Hacker总是生存在与WAF的不断抗争之中的,厂商不断过滤,Hacker不断绕过.WAF bypass是一个永恒的话题,不少基友也总结了很多奇技怪招.那今天我在这里做个小小的扫盲吧.先来说说 ...

  9. 用Matplotlib绘制二维图像

    唠叨几句: 近期在做数据分析,需要对数据做可视化处理,也就是画图,一般是用Matlib来做,但Matlib安装文件太大,不太想直接用它,据说其代码运行效率也很低,在网上看到可以先用Java做数据处理, ...

  10. sharepoint读取启用了追加功能的多行文本的历史版本记录

    当建立多行文本栏时,有个功能就是"追加对现有文本所做的更改",这个功能启用后,这个多行文本就只运行追加内容而不允许修改以前提交的内容.常常被应用在多个用户之间的协作.问题的追踪等记 ...