android webview与 java与javascript的交互

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");

效果图

时间: 2024-10-09 23:39:26

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

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

Android代码: package com.fyfeng.testjavascript; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.util.Log; import android.webkit.WebView; import androi

让Java和JavaScript进行交互

本篇博文参考自:http://droidyue.com/blog/2014/09/20/interaction-between-java-and-javascript-in-android/ 我们在使用webview时可以让java代码和网页中的js代码进行交互,本文就简单说明下二者是如何交互的. 一.JS调用java代码 1.1 网页的代码: <html> <script type="text/javascript"> function toastMessag

android WebView(四)与html交互

WebView如何与html相互交互 很多时候WebView需要和html进行交互,要么需要通过Java代码控制页面活动,要么就是通过js触发Java代码,WebView提供了中机制. 首先来看一下我们需要交互的html代码吧: <!DOCTYPE html> <html> <head> <title>MyHtml.html</title> </head> <body> <br> <br>大家晚上好

Android WebView 开发教程

1.WebView的使用 (a). 创建WebView的实例加入到Activity中 WebView webview = new WebView(this); setContentView(webview); 或者在xml中配置WebView <Webview android:layout_width="match_parent" android:layout_height="match_parent" > </Webview> (b). 访

Android WebView 研发教程

声明在先:必须在AndroidMainfest.xml 里面声明权限,否则在Java里面编写的所有WebView浏览网页的代码都无法正常使用 <uses-permission android:name="android.permission.INTERNET" /> 1.WebView的使用 (a). 创建WebView的实例加入到Activity中 WebView webview = new WebView(this); setContentView(webview);

Android WebView 加载超长 JS 数据

在之前的文章里面,我总结过WebView如何与网页交互,也就是Java如何和JS交互 -- Android WebView 总结 -- Java和JavaScript交互. 基于这篇文章,我们基本上能完成绝大部分交互的逻辑.但是,因为业务需要,最近加载的JS都是超长的数据,但测试发现在Android 16及以下的手机上,能正常使用,但是在17 及以上的手机上,发现JS没有执行. 这是因为,WebView在Android 17及以后对之前的WebView存在的安全问题做了调整.那怎么办呢?答:使用

android 中java和javascript交互

android的WebView是一个非常强大的控件,本文主要针对其简单使用和笔者在使用时所遇到的问题做一些总结. 本文参考了该博文:http://blog.csdn.net/zgjxwl/article/details/9627685 一.WebView中Java与javascript交互 1.这是要和js交互的注入接口类: public final class JavascriptInteerface{ @JavascriptInterface public void test(String

Android WebView Java和JavaScript交互

Java调用JavaScript mWebView.loadUrl("javascript:toast()"); js: <script language="javascript> <!--提供给android的java代码调用--> function toast(){ alert("fdsaf") } JavaScript调用Java WebView提供了一个名为WebSetting的工具类来实现让WebView中的JavaScr

Android WebView与JavaScript交互操作(Demo)

应用场景: 为了使Android移动项目能够在较短的时间内完成开发,同时降低技术人员开发的成本投入,往往会采用Hybrid APP的开发模式.相关Hybrid APP(混合型应用)参看:http://blog.csdn.net/mahoking/article/details/30235243 采用这种模式,为了解决更好的用户体验,可访问本地资源的能力.势必需要了解与掌握Android(java)与JavaScript之间的交互.相互调用操作的方法与技术. [转载使用,请注明出处:http://