21,js与androud交互之javascript调用本地之方法一(接口类):
=========
21,js与androud交互之javascript调用本地之方法一(接口类):
 Android4.4(API版本19)引入了新的一个基于Chromium版本的新版本WebView。
 该变化提高了WebView的性能,并且和最新的Web浏览器支持最新的HTML5,CSS3样式以及Javascript标准。
 当在 Android 4.4或者更高的版本上面运行时,任何使用WebView的application会继承使用这些特性。
 本文章主要描述了一下WebView的新特性。如果你设置targetSdkVersion为19或者更高时,那你就需要特别的注意。这里不做过多讲解, 
webSettings.setJavaScriptEnabled(true);
通过创建JavaScript的接口可以让JavaScript和安卓客户端进行交互。
比如说JavaScript可以调用本地的安卓代码展示一个Dialog而不是使用JavaScript的alter()方法。
通过addJavascriptInterface()方法创建接口。
注意:
1 addJavascriptInterface方法中要绑定的Java对象及方法运行在另外的线程中,而不是运行在构造他的线程中。
2 使用addJavascriptInterface将会使javaScript可以操控安卓本地代码。因此有可能导致安全性问题,请确保所有HTML代码都是你所知道的。
3 如果targetSdkVersion是17或者更高(android 4.2以上),必须使用 @JavascriptInterface 注解,才能让网页访问到本地代码。
定义一个“接口”类
public class WebAppInterface {
    Context mContext;
    WebAppInterface(Context c) {
        mContext = c;
    }
    /** Show a toast from the web page */
    @JavascriptInterface
    public void showToast(String toast) {
        Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
    }
}
在addJavascriptInterface方法中创建接口
webView.addJavascriptInterface(new WebAppInterface(this), "Android");
在HTML的JavaScript中调用WebView显示toast消息,
<input type="button" value="Say hello" onClick="showAndroidToast(‘Hello Android!‘)" />
<script type="text/javascript">
    function showAndroidToast(toast) {
        Android.showToast(toast);
    }
</script>
--------
原文:http://www.cnblogs.com/awkflf11/p/7041418.html