<html>
<head>
<title>js交互android</title>
<mce:script type="text/javascript"><!--
function show(){
var a = document.getElementById("text").value;
alert(a);
}
// --></mce:script>
</head>
<body>
<form action="">
<input type="text" id="text" value=""/>
<input type="button" id="button" onclick="window.chenzheng_java.show()" value="clickme"/>
</form>
</body>
</html>
package cn.com.chenzheng_java.js;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.Toast;
public class JavaScriptActivity extends Activity {
WebView webView;
Handler handler = new Handler();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webView = (WebView) findViewById(R.id.webView1);
/**
* webSettings 保存着WebView中的状态信息。当WebView第一次被创建时,webSetting中
* 存储的都为默认值。WebSetting和WebView是一一绑定的。如果webView被销毁了,那么
* 我们再次调用webSetting中的方法时,会抛出异常。
*/
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.loadUrl("file:///data/js.html");
/***
*webChromeClient是一个比较神奇的东西,其里面提供了一系列的方法,
*分别作用于我们的javascript代码调用特定方法时执行,我们一般在其内部
*将javascript形式的展示切换为android的形式。
* 例如:我们重写了onJsAlert方法,那么当页面中需要弹出alert窗口时,便
* 会执行我们的代码,按照我们的Toast的形式提示用户。
*/
class MyWebChromeClient extends WebChromeClient {
@Override
public boolean onJsAlert(WebView view, String url, String message,
JsResult result) {
Toast.makeText(getApplicationContext(), message,
Toast.LENGTH_LONG).show();
return true;
}
}
webView.setWebChromeClient(new MyWebChromeClient());
/*
* 为javascript提供一个回调的接口,这里要注意,一定要在单独的线程中实现,要不会阻塞线程的
* addJavascriptInterface(Object obj, String interfaceName)
* obj代表一个java对象,这里我们一般会实现一个自己的类,类里面提供我们要提供给javascript访问的方法
* interfaceName则是访问我们在obj中声明的方法时候所用到的js对象,调用模式为window.interfaceName.方法名()
*/
webView.addJavascriptInterface(new Object() {
public void show() {
handler.post(new Runnable() {
@Override
public void run() {
Log.i("通知", "调用了该方法哦");
/*
* 通过webView.loadUrl("javascript:xxx")方式就可以调用当前网页中的名称
* 为xxx的javascript方法
*/
webView.loadUrl("javascript:show()");
}
});
}
}, "chenzheng_java");
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有