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>

    --------

  • 相关阅读:
    模拟按键'ESC',解决韩语等输入法对输入框(codemirror)的支持
    grpc的基础知识
    HttpClientFactory 是 HttpClient 的正确使用方式
    Workflow Core + asp.net core 5.0 实现简单审批工作流
    GitHub自动化部署(CD) asp.net core 5.0 项目(免费空间)
    CleanArchitecture Application代码生成插件-让程序员告别CURD Ctrl+C Ctrl+V
    C# 字符串转成JSON对象 反射获取属性值
    java设计模式-状态模式
    2021目前可用的百度网盘不限速下载方法
    docker映射配置文件
  • 原文地址:https://www.cnblogs.com/awkflf11/p/7041418.html
Copyright © 2011-2022 走看看