• webview之总结2


    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>

    --------

  • 相关阅读:
    NHibernate 转载
    net中Json对单引号和特殊字符串的处理
    C#过滤非法字符
    Linq Distinct 扩展
    (转)Windows启动过程分析预引导
    special content filetypes require specialized software to use
    存储器
    (转)MAPISendMail调用系统默认的邮件客户端发邮件
    FrameControllerModel
    (转)c++的四种类型转换
  • 原文地址:https://www.cnblogs.com/awkflf11/p/7041418.html
Copyright © 2020-2023  润新知