zoukankan      html  css  js  c++  java
  • 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>

    --------

  • 相关阅读:
    获取bootstrap table数据并封装 为json
    不自动切换eclipse视图
    over 分析函数之 lag() lead()
    oracle日期的处理
    表空间的创建
    分析函数 over用法 之row_number() runk_number
    oracle 序列
    Laravel 5
    使用hexo+github搭建免费个人博客详细教程
    windows7设置定时任务运行ThinkPHP框架程序
  • 原文地址:https://www.cnblogs.com/awkflf11/p/7041418.html
Copyright © 2011-2022 走看看